我有三本工作簿,A,B和C.
A有一个名称列表,表明我应该从B移到C。
我在A中写一个宏来做这件事。我只想打开/引用B和C,并且能够扫描A中的所有内容以防止B中的所有内容,并且每次遇到匹配时,都会从B中删除行并附加到C的末尾。
我遇到的问题只是让工作簿正确打开/引用,更不用说其他一切了
例如我正在尝试使用C来使用C中的最后一行,但这给我带来了麻烦
path = "C:\MyPath\"
bBath= path & "B.xls"
cPath= path & "C.xls"
Set bBook = Application.Workbooks.Open(bPath)
Set cBook = Application.Workbooks.Open(cPath)
k = 1
While cBook.Sheets("SomeSheetName").Row(k, 1) <> ""
k = k + 1
Wend
答案 0 :(得分:1)
替换
k = 1
While cBook.Sheets("SomeSheetName").Row(k, 1) <> ""
k = k + 1
Wend
使用
k = cBook.Sheets("SomeSheetName").UsedRange.SpecialCells(xlCellTypeLastCell).Row
这将为您提供工作表上有数据/格式的最后一行。
如果您需要列是绝对列,则可以执行此操作
k = cBook.Sheets("SomeSheetName").Cells(cBook.Sheets("SomeSheetName").Rows.Count,1).End(xlUp).Row
例如,将为您提供第1列中使用的最后一行。将B更改为1,更改为2,依此类推。 (你可以把它清理一下,这样更容易阅读)
答案 1 :(得分:1)
将行(k,1)更改为单元格(k,1)。