找到第一个空单元时结束命令

时间:2017-04-03 21:49:36

标签: vba excel-vba excel

此代码用于查看值列表,代码需要在第一个空白行结束。目前,此代码在遇到空白单元格时会导致错误。不确定如何在命中空白单元格时结束命令。任何建议都非常感谢。

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

2 个答案:

答案 0 :(得分:2)

遇到空白单元格时,只需执行Exit SubEnd

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语句作为其他用户提供的。

我个人喜欢第一种方法。