Vba 根据条件将模板从不同工作簿复制到多个工作表上的特定单元格中
我正在努力编写代码,将模板从单独的工作簿复制粘贴到特定的单元格中。复制的模板因文本条件而异,文本条件位于模板应复制到的每张图纸上的单元格A4中Vba 根据条件将模板从不同工作簿复制到多个工作表上的特定单元格中,vba,excel,templates,Vba,Excel,Templates,我正在努力编写代码,将模板从单独的工作簿复制粘贴到特定的单元格中。复制的模板因文本条件而异,文本条件位于模板应复制到的每张图纸上的单元格A4中 浏览总结工作簿上的每一页 在每张纸上,单元格A4中有一个特定的文本,该文本引用模板 打开包含多个模板工作表的模板工作簿。复制与摘要工作簿工作表单元格A4中的文本对应的模板 返回摘要工作簿上的工作表,然后将模板粘贴到单元格F14上。(因此,我必须在这里指定需要粘贴的整个单元格范围,还是只参考粘贴前应单击的单元格就可以了) 对摘要工作簿中的所有工作表重复此操
Sub PASTE()
Dim wb1 As Workbook
Dim Sht As Worksheet
Dim Rng, Rng2 As Range
Dim cell As Range
Dim ws As Worksheet
Set wb1 = ThisWorkbook
Set Sht = wb1.Worksheets("Summary")
Set Rng = Sht.Range("A6:A" & Sht.Cells(Sht.Rows.Count, "A").End(xlUp).Row)
Dim TemplateBook As Workbook
Set TemplateBook = Workbooks.Open(Filename:="C:\Users\VBA-NOOB\Desktop\EVERY Colour.xlsx")
DoEvents
For Each cell In Rng
Set ws = wb1.Sheets(cell.Text)
Select Case ws.Range("A4").Value
Case "Red & Green T"
ws.Range("F14").Value = TemplateBook.Sheets("Red & Green") '<--- is causing the error
End Select
Next cell
End Sub
子粘贴()
将wb1设置为工作簿
将Sht变暗为工作表
变暗Rng、Rng2作为范围
暗淡单元格作为范围
将ws设置为工作表
设置wb1=ThisWorkbook
设置Sht=wb1。工作表(“摘要”)
设置Rng=Sht.Range(“A6:A”和Sht.Cells(Sht.Rows.Count,“A”)。结束(xlUp.Row)
Dim TemplateBook作为工作簿
Set TemplateBook=Workbooks.Open(文件名:=“C:\Users\VBA-NOOB\Desktop\EVERY color.xlsx”)
多芬特
对于Rng中的每个单元
设置ws=wb1.Sheets(cell.Text)
选择案例ws.Range(“A4”)值
案例“红色与绿色T”
ws.Range(“F14”).Value=TemplateBook.Sheets(“红色和绿色”)'
…或类似,指定源区域的大小,而不是尝试使用“所有单元格”。只是猜测。你能这样试试吗
Option Explicit
Sub PASTE()
Dim wb1 As Workbook
Dim Sht As Worksheet
Dim Rng As Range
Dim Rng2 As Range
Dim cell As Range
Dim ws As Worksheet
Dim TemplateBook As Workbook
Dim rng3 As Range
Set wb1 = ThisWorkbook
Set Sht = wb1.Worksheets("Summary")
Set Rng = Sht.Range("A6:A" & Sht.Cells(Sht.Rows.Count, "A").End(xlUp).Row)
Set TemplateBook = Workbooks.Open(Filename:="C:\Users\VBA-NOOB\Desktop\EVERY Colour.xlsx")
DoEvents
For Each cell In Rng
Set ws = wb1.Sheets(cell.Text)
Select Case ws.Range("A4").Value
Case "Red & Green T"
ws.Range("F14") = TemplateBook.Sheets("Red & Green").Range("F14") '<--- is causing the error
End Select
Next cell
End Sub
在本例中,您将图纸指定给一个范围。这是不可能的。指定要从模板复制的范围,如下所示:
Select Case ws.Range("A4").Value
Case "Red & Green T"
TemplateBook.Sheets("Red & Green").Range("F14:Z100").Copy
ws.Activate
Range("F14").Select
ActiveSheet.PASTE
End Select
请不要使用VBA标签!Thx@Peh用于编辑!;)是的,我希望F14作为要粘贴到的基本单元格。但是,对于不同的标准,有不同的模板。因此,如果表单中的单元格A4显示为红色和绿色,那么它应该从templatebook红色和绿色表单复制过去。在您编写的代码中,它没有指定要使用哪一个模板表,我也不知道如何使用,抱歉-我试图同时编写代码和聊天!我已经纠正了这一点,包括对模板手册的引用。关键部分是在=
的两侧使用相同类型的对象。如果要为特定单元格或单元格范围赋值,则需要为其指定单元格引用、字符串、整数或类似值。我尝试了此操作,但未发生任何问题,模板文件已打开,但也没有错误或复制粘贴。我修改它来指定要复制的范围:ws.range(“F14”)=TemplateBook.Sheets(“红色和绿色”).range(“E1:H623”),所以我不知道这是否是它不复制粘贴任何内容的原因
Option Explicit
Sub PASTE()
Dim wb1 As Workbook
Dim Sht As Worksheet
Dim Rng As Range
Dim Rng2 As Range
Dim cell As Range
Dim ws As Worksheet
Dim TemplateBook As Workbook
Dim rng3 As Range
Set wb1 = ThisWorkbook
Set Sht = wb1.Worksheets("Summary")
Set Rng = Sht.Range("A6:A" & Sht.Cells(Sht.Rows.Count, "A").End(xlUp).Row)
Set TemplateBook = Workbooks.Open(Filename:="C:\Users\VBA-NOOB\Desktop\EVERY Colour.xlsx")
DoEvents
For Each cell In Rng
Set ws = wb1.Sheets(cell.Text)
Select Case ws.Range("A4").Value
Case "Red & Green T"
ws.Range("F14") = TemplateBook.Sheets("Red & Green").Range("F14") '<--- is causing the error
End Select
Next cell
End Sub
ws.Range("F14") = TemplateBook.Sheets("Red & Green").Range("F14")
Select Case ws.Range("A4").Value
Case "Red & Green T"
TemplateBook.Sheets("Red & Green").Range("F14:Z100").Copy
ws.Activate
Range("F14").Select
ActiveSheet.PASTE
End Select