Xử lí dừng macro khi kiểm tra điều kiện không thỏa

  • Thread starter Thread starter caheơ9
  • Ngày gửi Ngày gửi
Liên hệ QC

caheơ9

Thành viên mới
Tham gia
3/7/08
Bài viết
3
Được thích
0
Lần đầu tiên viết macro , mong mọi người giúp đỡ mình sửa code này ạ.
Mình có 2 vấn đề nhờ giúp ạ:
* Vấn đề 1:
Mình có ghi chú vấn đề cần giúp đỡ (thay vì thoát khỏi function thì mình muốn xử lí dừng macro) trong code sau, hic hic


Function CreateFileList(FileFilter As String, IncludeSubFolder As Boolean) As Variant
' trả về list tên file trong thư mục

Dim FileList() As String, FileCount As Long
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")



CreateFileList =
"" : Erase FileList

If FileFilter = "" Then FileFilter = "*.*" ' tat ca cac tap tin

With Application.FileSearch

.NewSearch: .LookIn = CurDir + "\ConfigFile"
.FileName = FileFilter
.SearchSubFolders = IncludeSubFolder
.FileType = msoFileTypeAllFiles
If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) _
= 0 Then
CreateFileList = Null
MsgBox ("File is open, can't merge. Program is close!")
Exit Function <- thay vì thoát khỏi function thì mình muốn xử lí dừng macro

End If
ReDim FileList(.FoundFiles.count)
For FileCount = 1 To .FoundFiles.count
FileList(FileCount) = .FoundFiles(FileCount)
Next FileCount
.FileType = msoFileTypeExcelWorkbooks
End With
CreateFileList = FileList
Erase FileList
End Function


* Vấn đề 2:
Function CreateFileList ở trên sẽ được gọi trong function CopyContentSheet bên dưới đây. Mình muốn hỏi cách kiểm tra xem CreateFileList có rỗng hay không.


Function CopyContentSheet()

Dim FullName As String, FileName As String
Dim FileNamesList As Variant, i As Integer
Dim xlr_source As Excel.Range
Dim xlr_dest As Excel.Range

MyPath = ActiveWorkbook.Path
ChDrive MyPath
ChDir MyPath

Dim R As Range

Set exerciseWB = ActiveWorkbook
Set destrange = exerciseWB.Worksheets("TABLE_A")

FileNamesList = CreateFileList("*.*", False)

If FileNamesList = Null Then
Exit Function <- mình không biết cách kiểm tra FileNamesList có rỗng hay không nên mặc dù list file không được tạo, mình đã gán CreateFileList = Null trong function CreateFileList nhưng chương trình vẫn không vào được dòng lệnh này
End If


FileName = FileNamesList(1)

Set fileConfig1WB = Workbooks.Open(FileName)
Set sourceRange = fileConfig1WB.Worksheets("TABLE_A")

Set xlr_source = sourceRange.Cells
Set xlr_dest = destrange.Cells(1, 1)

xlr_source.Copy xlr_dest

Set xlr_dest = destrange.Cells
xlr_dest.Copy
xlr_dest.PasteSpecial xlPasteValues


fileConfig1WB.Close False
Application.CutCopyMode = False


End Function

Mong mọi người chỉ giáo, xin cám ơn nhiều lắm.
 
Lần chỉnh sửa cuối:
Ôi sao mình gửi bài mà nó không xuống hàng gì hết, sao nó luông tuồng vậy nè, hic hic, bây giờ làm sao đây.

<- đã chỉnh sửa được hiển thị cho bài viết
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom