此代码用于查看值列表,代码需要在第一个空白行结束。目前,此代码在遇到空白单元格时会导致错误。不确定如何在命中空白单元格时结束命令。任何建议都非常感谢。
Sub PMN_Update()
Dim Month As String
Dim Year As String
Dim File As String
Dim FileRow As String
Dim x As Variant
Month = Range("G2").Value
Year = Range("G3").Value
NumFiles = Application.CountA(Sheets("PMNs").Range("A2:A200"))
ChDir "L:\management tools\PROJECT\Prog_Fcst"
For x = 1 To NumFiles
FileRow = "A" & 1 + x
File = Range(FileRow).Text
Workbooks.Open Filename:="XXXXXXXXXXXXXXX" & File, _
UpdateLinks:=0
Sheets("Initiation").Select
Range("Q4").Select
ActiveCell.FormulaR1C1 = Month
Range("Q5").Select
ActiveCell.FormulaR1C1 = Year
Application.DisplayAlerts = False
Application.Run "'" & File & "'!UpdateMaterial"
Application.Run "'" & File & "'!UpdateAMRData"
Application.DisplayAlerts = True
'Application.Run UpdateMaterial
'Application.Run UpdateAMRData
ActiveWorkbook.Save
ActiveWorkbook.Close
Next x
End Sub
答案 0 :(得分:2)
遇到空白单元格时,只需执行Exit Sub
或End
:
For x = 1 To NumFiles
If IsEmpty(Cells(x + 1, "A").Value) Then End
或者您可以根据File
:
File = Range(FileRow).Text
If File = "" Then End
答案 1 :(得分:1)
您可以使用不同的选项来处理此问题:
第一种方法可以使用While
While Cells(x + 1, "A").Value <> "" 'this check if it is empty
'YOUR CODE GOES HERE
x = x + 1
Wend
其次是使用On Error
:
你可以使用它
On Error Resume Next
要么
On Error GoTo 99
然后在End Sub
之后的下一行之后添加一行:99 Exit Sub
第三是使用if语句作为其他用户提供的。
我个人喜欢第一种方法。