有人可以帮助这段代码的最后一位,我有一个范围最大值(" A1:A54")当我设置到这个范围并且只有(A1:A10)有一个单元格值这是另一个工作簿中工作表的名称。
此代码正常运行但返回
运行时9错误
我真的想添加如果空白忽略如果我改变到我设置为A1的范围:A10然后没有错误。我想可能是其他工作簿中没有工作表,这就是我在这个循环中出错的原因。
看过如何忽略空白,但我找到的答案都没有。
我真的想要一个if cell =""然后忽略当前我认为退出子将工作 Sub Iedextraction()
Dim wkb As Excel.Workbook, wkb1 As Excel.Workbook
Dim wks As Excel.Worksheet, wks1 As Excel.Worksheet
Dim cell As Range
Dim rng As Range
Workbooks.Open Filename:= _
"D:\Projects\ASE Templates\ASE Template White Book.xlsx"
Set wkb = Excel.Workbooks("ASE RTU Addressing with Automation.xlsm")
Set wks = wkb.Worksheets("Tab Names from White book")
Set wkb1 = Excel.Workbooks("ASE Template White Book.xlsx")
Set rng = wks.Range("A1:A54")
For Each cell In rng
wkb1.Sheets(cell.Value).Copy After:=Workbooks_
("ASE RTU Addressing with Automation.xlsm").Sheets(4)
If cell = "" Then Exit Sub
Next
' On Error GoTo 0
End Sub
答案 0 :(得分:1)
添加条件指令:
If cl <> "" Then wkb1.Sheets(cell.Value).Copy After:=Workbooks _
("ASE RTU Addressing with Automation.xlsm").Sheets(4)
并删除:
If cell = "" Then Exit Sub
答案 1 :(得分:0)
您的错误很可能是因为您在进行检查之前尝试复制。因此,最后,您尝试获取没有名称的工作表。 :)
答案 2 :(得分:0)
使用动态范围是更好的做法,因为它可能会在未来某个时候发生变化。有多种方法可以做到这一点,但我的方法是这样的:
Dim rn As Range
Set rn = Range(Range("A1"), Range("A1").End(xlDown))
因此,您的问题将得到解决(假设空白单元格确实为空),您不必测试空白单元格。
无论如何,如果他们解决了您的问题,您应该将上述答案之一标记为正确。