如何使用VBA替换图纸?

如何使用VBA替换图纸?,vba,excel,Vba,Excel,我想从工作簿复制一张工作表,并将其粘贴到活动工作簿的第二张工作表中。我是vba新手,看起来并不难,但我的代码不起作用。复制的工作表在新工作簿中打开,而不是在活动工作簿中打开 谢谢你的帮助 我的代码: Sub copyPaste() Dim classeur1 As Excel.Workbook Dim classeur2 As Excel.Workbook Set classeur1 = Workbooks.Open("Macintosh HD:Users:LouiseDhain

我想从工作簿复制一张工作表,并将其粘贴到活动工作簿的第二张工作表中。我是vba新手,看起来并不难,但我的代码不起作用。复制的工作表在新工作簿中打开,而不是在活动工作簿中打开

谢谢你的帮助

我的代码:

Sub copyPaste()

  Dim classeur1 As Excel.Workbook
  Dim classeur2 As Excel.Workbook

  Set classeur1 = Workbooks.Open("Macintosh HD:Users:LouiseDhainaut:Documents:Stage:test_modifiable.xlsx")
  Set classeur2 = ThisWorkbook

  classeur1.Sheets(1).Copy
  classeur1.Sheets(1).Paste Destination:=ThisWorkbook.Sheets(2).Range("A1")


  classeur2.Save
  classeur1.Close

End Sub
尝试:

而不是

classeur1.Sheets(1).Copy
classeur1.Sheets(1).Paste Destination:=ThisWorkbook.Sheets(2).Range("A1")
尽管请注意,复制整个工作表将复制整个工作表,而不仅仅是它的内容

如果希望仅复制内容,则需要其他代码,例如:

classeur1.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets(2).Range("A1")
尝试:

而不是

classeur1.Sheets(1).Copy
classeur1.Sheets(1).Paste Destination:=ThisWorkbook.Sheets(2).Range("A1")
尽管请注意,复制整个工作表将复制整个工作表,而不仅仅是它的内容

如果希望仅复制内容,则需要其他代码,例如:

classeur1.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets(2).Range("A1")

复制使用的范围,而不是工作表本身。Copy命令不是您想要的Ctrl-c。它有参数
Sheet1.Copy Before:Thisworkbook.Sheets(2)
@Vacip yes如果您没有指定之前或之后,您是对的
,Microsoft Excel创建一个新工作簿,其中包含复制的工作表对象,该工作表对象包含从使用范围而不是工作表本身复制的工作表对象。.Copy命令不是您所想到的Ctrl-c。它有参数
Sheet1.Copy Before:Thisworkbook.Sheets(2)
@Vacip yep您是对的
如果您没有指定之前或之后,Microsoft Excel将创建一个新工作簿,其中包含复制的工作表对象,该工作表对象包含复制的工作表对象
,根据您的建议,我只复制了内容,并且工作正常。谢谢你的回答!没问题,很高兴我能帮忙。:)请考虑将其标记为已接受答案(答案的勾标)。谢谢按照你的建议,我只复制了内容,而且效果很好。谢谢你的回答!没问题,很高兴我能帮忙。:)请考虑将其标记为已接受答案(答案的勾标)。谢谢