簡體   English   中英

使用VBA在Excel工作簿的第二張工作表上運行循環

[英]Running loop on second sheet in Excel Workbook with VBA

我正在嘗試運行Do While循環以將工作簿的Sheet2的新列上的Sheet2的三列連接起來,我認為我引用第二個工作表的方式會使其出錯,因為在第一張表上運行此代碼會給我帶來積極的結果, 任何幫助將非常感激。

ActiveWorkbook.Worksheets("Sheet2").Activate

Dim noSep As String
noSep = ""

Cells(1, 3) = col1
Cells(1, 30) = col2
Cells(1, 32) = col3
Cells(1, 63) = colconcatenated

x = 2

Do While Worksheets("Sheet2").Cells(x, col1) <> ""
Cells(x, coloncatenated) = Cells(x, col1) & noSep & Cells(x, col2) & noSep & Cells(x, col3)
x = x + 1
Loop
Columns("BK:BK").EntireColumn.AutoFit

很難從您的問題中看出來,但是通常,如果您一次使用多個工作表,則應該對這些工作表上的所有單元格/范圍引用進行限定,以指定要使用的工作表。

否則,Excel將嘗試基於活動的工作表(在上面的代碼中是Sheet2)進行猜測。 (ActiveWorkbook.Worksheets(“ Sheet2”)。在頂部激活將其設置為ActiveSheet)

因此,例如,要引用工作表1上的單元格:

Worksheets("Sheet1").Cells(1,3) = col1

另外,您可以使幾個變量變暗以引用這兩個表,這可能使代碼更易於閱讀:

Dim shtA as Worksheet
Dim shtB As Worksheet

Set shtA = Sheets("Sheet1")
Set shtB = Sheets("Sheet2")

shtA.Cells(1, 3) = col1

希望有幫助!

我最終不得不對其進行基本重建,並銷毀了先前開發人員的所有垃圾代碼。 一旦我重新開始,指定不是活動工作表的工作表就解決了我的問題。 我的宏運行正常。

謝謝Leowyn搶先一步。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM