如何通过使用要复制到的工作表列表将范围复制到多个工作表

问题描述 投票:0回答:1

这里是VBA新手。我有一个复杂的电子表格,但我会针对我的问题对其进行简化。假设我有一本包含 20 个工作表的工作簿。 每个工作表都有一个三个字母的名称,例如

ABC
。在第一个工作表中,单元格
CITIES
中有一个名为
A1:A10
的范围。
CITIES
中的每个单元格都有一个城市的名称。此外,在第一个工作表的单元格
B1:B10
中,还有 10 个工作表名称的列表。我定期更改此列表。我需要一个宏将范围
CITIES
复制到
C1
中列出的每个工作表的单元格
B1:B10
中。

使用我的宏(如下所示),每次在

B1:B10
列表中进行更改时,我都必须更改宏中的工作表名称。我希望宏使用
B1:B10
列表来确定要复制到哪些工作表。

预先感谢您提供的任何帮助。

Sub CITIES_COPY ()
    Range("CITIES").Select
    Selection.Copy
    Sheets(Array("ABC", "DEF", "GHI", "JKL", "MNO", "PQR", "STU", "VWX", "YZA", "BCD")). _
        Select
    Sheets("ABC").Activate
    Range("C1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A1").Select
End Sub
vba range
1个回答
0
投票

将此代码放入第一个工作表代码模块(数据所在的位置) 这些范围是硬编码的,因此必须记住这一点。例如。如果工作表少于 10 个,则会出现缺少名称的错误;如果工作表大于 10 个,则超过 10 个的工作表将被忽略。 “A1:A10”可以更改为命名范围。

Sub mulcopy()

Range("A1:A10").Copy
For i = 1 To 10
  shnames = Cells(i, "B")
  Application.Worksheets(shnames).Range("C1").PasteSpecial xlPasteAll
Next i


End Sub

© www.soinside.com 2019 - 2024. All rights reserved.