如何在Excel VBA中跨多个工作表粘贴值

时间:2018-09-21 17:04:39

标签: excel vba

任何人都可以分享有关如何从一个特定的列开始将值从一个工作表粘贴到多个工作表的知识吗?

我想从工作表(“模板”)中复制公式并将其粘贴到从F1列一直到最后一列/行的其他工作表中。以下是我的代码。我受困于第5行,在不查看工作表名称的情况下无法找到粘贴值的方法。谁能建议如何解决这一挑战?谢谢:)

Dim Y as workbook
Set Y = Thisworkbook
Dim copydata as Long
copydata=y.worksheets("Template").UsedRange.Rows.Count
Dim i as Long
For i=3 to sheets.count
Y.worksheets("name").Range("F1:x"&copydata).Formula= _
Y.worksheets("Template").Range("F1:X"&copydata).Formula

2 个答案:

答案 0 :(得分:1)

这是上面我的评论中的代码。建议切换到For Each循环以迭代工作簿中的所有工作表。您可以使用If块来测试并跳过任何您不想复制此公式的工作表(“模板”是我所知道的,您应该跳过这一事实)。

Dim Y as workbook
Set Y = Thisworkbook

Dim copydata as Long
copydata=y.worksheets("Template").UsedRange.Rows.Count

Dim ws As Worksheet
For Each ws in Y.Worksheets
    If ws.Name <> "Template" Then ws.Range("F1:x"&copydata).Formula = _
            y.worksheets("Template").Range("F1:X"&copydata).Formula
Next ws

答案 1 :(得分:0)

您可以使用用于遍历工作表集合的相同索引。

Dim Y as workbook, copydata as Long, i as Long

Set Y = Thisworkbook

copydata=y.worksheets("Template").UsedRange.Rows.Count

For i=3 to worksheets.count
    Y.worksheets(i).Range("F1:x"&copydata).Formula= _
      Y.worksheets("Template").Range("F1:X"&copydata).Formula
next i