0

A、B、Cの3つのワークブックがあります。

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 に答える