如果禁用excel文件上的宏,则无法将工作表从一个工作簿复制到另一个工作簿
我正在使用此功能将工作表从工作簿复制到另一工作簿。 我可以工作,但如果我禁用工作簿中的宏, 它不能再复制这张纸了 如果我更改此行:如果禁用excel文件上的宏,则无法将工作表从一个工作簿复制到另一个工作簿,excel,vba,copy,Excel,Vba,Copy,我正在使用此功能将工作表从工作簿复制到另一工作簿。 我可以工作,但如果我禁用工作簿中的宏, 它不能再复制这张纸了 如果我更改此行:m_objExcel.AutomationSecurity=msoAutomationSecurityForceDisable 为此m_objExcel.AutomationSecurity=msoAutomationSecurityByUI 它可以工作,但会收到一条警告消息。 另外,如果我对这行进行注释,它可以完美地工作,但宏处于打开状态 Private Sub C
m_objExcel.AutomationSecurity=msoAutomationSecurityForceDisable
为此m_objExcel.AutomationSecurity=msoAutomationSecurityByUI
它可以工作,但会收到一条警告消息。
另外,如果我对这行进行注释,它可以完美地工作,但宏处于打开状态
Private Sub CopyFunction()
Set m_objExcel = New Excel.Application 'creare obiect
m_objExcel.DisplayAlerts = False
g_secAutomation = m_objExcel.AutomationSecurity
m_objExcel.AutomationSecurity = msoAutomationSecurityForceDisable
m_objExcel.Visible = True
Dim CopyFrom As Workbook
Dim CopyTo As Workbook
Dim CopyThis As Object
Set CopyFrom = m_objExcel.Workbooks.Open("D:\FromFile.xls")
Set CopyTo = m_objExcel.Workbooks.Open("D:\ToFile.xls")
Set CopyThis = CopyFrom.Sheets(1) ''Sheet number 1
CopyThis.Copy After:=CopyTo.Sheets(1)
m_objExcel.Workbooks(CopyTo.FullName).Save
CopyFrom.Close
CopyTo.Close
m_objExcel.Workbooks.Close
MsgBox "ok"
End Sub
我从Access使用它,并使用Excel文件。 有什么问题?
有没有办法将工作表从工作簿复制到另一个工作簿,并禁用宏?这就是禁用宏的典型功能:安全性。
这是为了保护你自己;如果您收到来自未知作者的工作簿,此人可能会向您发送有害软件。
例如,假设代码在您打开工作簿后立即开始删除文件。
禁用宏可以防止这种情况,并允许您在决定执行代码之前查看代码 作为一种解决方案,当您以开发人员身份签署项目时,用户可以信任您作为作者。
我建议您查看以下链接: )
(您可以决定完全关闭安全性(启用宏),但通常不建议这样做。)我发现问题在于:
m_objExcel.Workbooks(CopyTo.Name).Save
有没有办法将工作表从一个工作簿复制到另一个工作簿,并禁用宏?我认为您不应该试图控制用户的安全设置。即使有复杂的方法可以绕过宏安全性,我可能也不会传播它。但是你可以使用我建议的选项,使用签名项目;这允许您在不受通知困扰的情况下保持高安全级别。当您禁用宏时,您无法执行VBA,因此您的代码甚至无法执行。这可能看起来很明显,所以我可能误解了你的问题。我正在Access中使用它,并使用Excel文件。“宏禁用”已启用到Excel文件。