问题描述
我对循环和尝试在现有宏上学习相对较新。我什至从一个简单的方法入手。我从B6上的一个工作簿开始有一系列数据,并且该列表可能永远存在。我希望我的循环能做的是:
- 复制B6
- 转到另一个工作簿,将其粘贴到单元格中
- 运行另一个VBA
- 将使用#2值的#3踢出数据复制并粘贴到另一张工作表中
- 循环并从头开始进入B7。 B7完成后的一项更改是,它将粘贴在先前#4中已经粘贴的数据下方。
解决方法
我不知道您为什么需要在一本工作簿中使用多个VBA过程来执行此操作。
在工作簿#1中,我将有一个子程序,其启动如下:
Dim wb1 as Workbook,wb2 as Workbook,wb3 as workbook
Dim iRow1 as Long,iRow2 as Long,iRow3 as long
Dim data1 as Variant,ws1 as Worksheet,ws2 as Worksheet,ws3 as Worksheet
set wb1 = ThisWorkbook
set wb2 = ThisWorkbook.Application.Workbooks.Open <Your workbook filename>
set wb3 = ThisWorkbook.Application.Workbooks.Open <Your other workbook filename>
set ws1 = wb1.Worksheets("MySheet1")
set ws2 = wb2.Worksheets("MySheet2")
set ws3 = wb3.Worksheets("MySheet3")
iRow1 = 6
iRow2 = 1
Do while len(ws1.cells(iRow1,2)) > 0
data1 = ws1.cells(iRow1,2)
ws2.cells(iRow2,1) = data1
iRow2 = iRow2 + 1
[Rest of Your Code]
iRow = iRow + 1
Loop
打开所有工作簿并明确引用所有内容后,无需运行多个VBA过程或担心要复制或使用哪些数据。
我知道Python的人们喜欢它的弱类型,但是如果您利用VBA的强类型和对象关联,那么编程将变得轻而易举,并且随后维护您的程序的人将会更加快乐。