我有一些 VBA 打开电子表格并从 Access 导入数据,如何锁定原始文件并自动 "Save As"?
I have some VBA that opens a spreadsheet and imports data from Access, how do I lock the original and automatically "Save As"?
下面的代码附加到一个命令按钮并打开一个 Excel 工作簿,然后从访问表单导入十几个(大部分在下面的代码中编辑)字段。我遇到的麻烦是用户:
(1) 使用按钮一次。
(2) 点击 "Save" 而不是 "Save As"。
(3) 再次使用该按钮。
(3)抱怨工作簿上有旧数据。
在下面的代码中,我如何:
(A) 防止用户编辑工作簿的主副本。
(B) 打开时自动弹出"Save As"对话框。
Private Sub cmd1_Click()
Dim appExcel As Excel.Application
Dim wbook As Excel.Workbook
Dim wsheet As Excel.Worksheet
Set appExcel = New Excel.Application
appExcel.Visible = True
Set wbook = appExcel.Workbooks.Open("F:\Network Folder\MySpreadsheet.xlsx")
Set wsheet = wbook.Worksheets("Sheet1")
With wsheet
.Cells(10, 1).Value = txt1
.Cells(10, 2).Value = txt2
End With
End Sub
我已经尝试了 here 提供的解决方案,但到目前为止没有成功。
试试这个:
Set wbook = appExcel.Workbooks.Open(Filename:="F:\Network Folder\MySpreadsheet.xlsx", ReadOnly:=True)
下面的代码附加到一个命令按钮并打开一个 Excel 工作簿,然后从访问表单导入十几个(大部分在下面的代码中编辑)字段。我遇到的麻烦是用户:
(1) 使用按钮一次。
(2) 点击 "Save" 而不是 "Save As"。
(3) 再次使用该按钮。
(3)抱怨工作簿上有旧数据。
在下面的代码中,我如何:
(A) 防止用户编辑工作簿的主副本。
(B) 打开时自动弹出"Save As"对话框。
Private Sub cmd1_Click()
Dim appExcel As Excel.Application
Dim wbook As Excel.Workbook
Dim wsheet As Excel.Worksheet
Set appExcel = New Excel.Application
appExcel.Visible = True
Set wbook = appExcel.Workbooks.Open("F:\Network Folder\MySpreadsheet.xlsx")
Set wsheet = wbook.Worksheets("Sheet1")
With wsheet
.Cells(10, 1).Value = txt1
.Cells(10, 2).Value = txt2
End With
End Sub
我已经尝试了 here 提供的解决方案,但到目前为止没有成功。
试试这个:
Set wbook = appExcel.Workbooks.Open(Filename:="F:\Network Folder\MySpreadsheet.xlsx", ReadOnly:=True)