【发布时间】:2021-04-20 14:23:11
【问题描述】:
快速提问。
我在这里有这个宏,它具有我需要的功能(将工作簿中的一个工作表中的 2 个单元格保存到不同工作簿中的工作表中。
我唯一的问题是它一直提示保存文件,并且不会让我实际保存它。
对我需要添加什么代码来解决问题有什么想法吗?它似乎以只读方式打开文件,也许这就是问题所在?
Sub Test()
Dim x As Workbook
Dim y As Workbook
Dim vals As Variant
'## Open both workbooks first:
Set x = Workbooks.Open("C:/File.xlsx")
Set y = ThisWorkbook
'Store the value in a variable:
vals = y.Sheets("List").Range("B3:B4").Value
'Use the variable to assign a value to the other file/sheet:
x.Sheets("P1").Range("A1:A2").Value = vals
'Close x:
x.Close
End Sub
【问题讨论】:
-
x.Close SaveChanges:=True? -
嗯,我试过了,由于某种原因,它提示将不同的文件名保存为“测试副本”,所以仍然没有自动保存。有点困惑为什么要这样做。
-
它似乎以只读方式打开文件,也许这就是问题所在?是的,这就是问题所在。
-
试试
x.SaveAs fileName:='File.xlsx", FileFormat:=52, CreateBackup:=False, AccessMode:=xlExclusive, _ ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges之类的东西,你也可以尝试在子开始时关闭显示警报。 -
在 End Sub 上方添加它会给我一个语法错误。如果语法正确,假设或多或少消除了只读问题?