【发布时间】:2019-05-17 12:23:07
【问题描述】:
我有多个工作表的 Excel 工作簿,如果满足条件,我需要将每个工作表的范围复制到一个“主”工作表(另一个工作表下)。
- 每张工作表都不同,行数和单元格数也可能不同。
- 在所有工作表(空白的主工作表除外)中,单元格 B1 是包含“是”或空白的复选单元格。
- 如果单元格 B1 ="yes",则宏必须将范围(从第 2 行到填充行的纬度)迁移到主工作表中。
- 所选范围必须在主工作表中一个接一个地复制(这样它就像一个列表)
我仍然是 VBA 的初学者,如果有人能对我的代码提供一点帮助,我将非常感激 :)。
我尝试使用“For Each - Next”来构建代码,但也许使用 Loop cicle 或其他东西会更好。
Sub Migrate_Sheets()
Dim wksh As Worksheet, DB_range As Range, end_row As Long, con_cell As Variant
con_cell = Range("B1")
'end_row = Range("1048576" & Rows.Count).End(xlUp).Rows
For Each wksh In Worksheets
If con_cell = "Yes" Then
Set DB_range = Range("2" & Rows.Count).End(xlDown).Rows
DB_range.Copy
wksh("Main").Activate
'row_end = Range("2" & Rows.Count).End(xlUp).Rows
Range("A1").End(xlDown).Offset(1, 0).Paste
End If
Next wksh
End Sub
【问题讨论】: