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

如何在Excel VBA中跨多个工作表粘贴值,excel,vba,Excel,Vba,任何人都可以分享如何从一个特定列开始将值从一个工作表粘贴到多个工作表的知识吗 我想从工作表(“模板”)中复制公式,并将其粘贴到其他工作表中,从F1列一直粘贴到最后一列/行。下面是我的代码。我从第5行开始就被卡住了,在不查看工作表名称的情况下,无法找到粘贴值的方法。有人能建议如何解决这一挑战吗?谢谢:) 这是我上面评论的代码。建议对每个循环切换到,以迭代工作簿中的所有工作表。您可以使用If块来测试和跳过您不想复制此公式的任何工作表(“模板”是我知道的一个您应该跳过的事实) Dim Y作为工作簿 设

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

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


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

Dim Y作为工作簿
设置Y=此工作簿
将复制数据变长
copydata=y.worksheets(“模板”).UsedRange.Rows.Count
将ws设置为工作表
对于Y中的每个ws。工作表
如果ws.Name“Template”,则ws.Range(“F1:x”和copydata)。公式=_
y、 工作表(“模板”).Range(“F1:X”和copydata).公式
下一个ws

您可以使用与在工作表集合中循环相同的索引

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

你能提供你的工作表名称吗?您的工作表名称是否按特定顺序排列?你能提供你的全部片段吗?您在此处缺少一个
下一个i
。请将
For
循环更改为
For Each
循环,类似于
For Each ws in Y.工作表中的
。然后在循环内部,您可以执行
如果ws.name“Template”那么ws.Range(“F1:X”和copyData.Formula=y.Worksheets(“Template”).Range(“F1:X”和copyData)。Formula
在使用
下一个ws
@jnevil复制后完成循环-做一个答案,而不是一个更容易阅读的注释,对吗?)谢谢您的建议!我的工作表名称没有特定的顺序。我在“下一个ws”上方添加了一个“End If”,它工作得非常完美!谢谢你的建议,JNevill。
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
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