繁体   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