0

我有三个工作簿,A、B 和 C。

A 有一个名称列表,表明我应该从 B 移动到 C。

我正在 A 中编写一个宏来执行此操作。我只想打开/引用 B 和 C,并能够扫描 A 中的所有内容与 B 中的所有内容,并且每当我遇到匹配项时,从 B 中剪切行并附加到 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
4

2 回答 2

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 等等。(你可以把它清理一下,这样更容易阅读)

于 2012-05-30T21:55:00.777 回答
1

将行(k,1)更改为单元格(k,1)。

于 2012-05-31T14:18:41.723 回答