我是使用vba的新手,这是我第一次尝试编写代码。
第一个工作簿MACRO2018
是我的计算模板。进入MACRO2018
我进行计算并每次使用不同的名称保存。第二个工作簿UzklausulenteleGeras
是我粘贴并存储这些计算的所有摘要的地方。
我根据需要复制并粘贴所有信息的代码,但UzklausulenteleGeras
不会保存也不会关闭。最后我得到了错误
Microsoft Excel无法访问文件“C:\ C788DF00”。有 几个可能的原因:
我尝试了很多工作簿并保存组合,但是得到了同样的错误。
所以,我等待你的评论,并提前致谢。
Private Sub Uzklausa_Click()
Workbooks.Open ("C:\UzklausulenteleGeras.xlsx")
Workbooks("UzklausulenteleGeras").Worksheets("2018").Range("B" & Rows.Count).End(xlUp).EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
Workbooks("UzklausulenteleGeras").Worksheets("2018").Range("B" & Rows.Count).End(xlUp).EntireRow.Select
Application.CutCopyMode = False
Selection.ClearContents
ThisWorkbook.Worksheets("Skaiciavimai").Range("B2:U2").Copy
Workbooks("UzklausulenteleGeras").Worksheets("2018").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
ActiveWorkbook.Close SaveChanges:=True
End Sub
答案 0 :(得分:0)
首先声明对象以表示各种工作簿。依赖ActiveWorkbook
是危险的 - 它可能不是您认为的工作簿!使用Workbook对象,您始终可以确定正在对哪个工作簿执行操作。
Private Sub Uzklausa_Click()
Dim wbUzkl as Workbook
Set wbUzkl = Workbooks.Open("C:\UzklausulenteleGeras.xlsx")
wbUzkl.Worksheets("2018").Range("B" & Rows.Count).End(xlUp).EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
wbUzkl.Worksheets("2018").Range("B" & Rows.Count).End(xlUp).EntireRow.Select
Application.CutCopyMode = False
Selection.ClearContents
ThisWorkbook.Worksheets("Skaiciavimai").Range("B2:U2").Copy
wbUzkl.Worksheets("2018").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
wbUzkl.Close SaveChanges:=True
End Sub