繁体   English   中英

VBA 循环复制、粘贴和执行其他 VBA

[英]VBA Loop Copy, paste and do other VBA

我对循环比较陌生,并试图学习我现有的宏。 我什至都在努力开始,我觉得这是一种简单的方法。 我在 B6 上的一本工作簿中有一系列数据,并且该列表可能永远存在。 我想让我的循环做的是:

  1. 副本B6
  2. 转到另一个工作簿,将其粘贴到单元格中
  3. 运行另一个 VBA
  4. 将使用 #2 值的数据 #3 复制并粘贴到另一张工作表中的 #1 工作簿中
  5. 循环并从头开始前往 B7。 一个变化是在 B7 完成后,它会粘贴在之前 #4 中已经粘贴的数据下方。

我不知道为什么您需要在一本工作簿中使用多个 VBA 过程来执行此操作。

在 Workbook#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 的强类型和对象关联,那么编程将变得轻而易举,并且随后来维护您的程序的人会更快乐。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM