Excel VBA在单击“保存”按钮后执行操作
我一直试图将这一点与我对VBA的有限理解结合起来,但所有的点似乎都排成一行 我有两个SharePoint环境。一个供公司内部使用,另一个供外部访问 有一个工作簿在内部环境中不断更新。当那本工作手册被保存时,我想Excel VBA在单击“保存”按钮后执行操作,excel,vba,Excel,Vba,我一直试图将这一点与我对VBA的有限理解结合起来,但所有的点似乎都排成一行 我有两个SharePoint环境。一个供公司内部使用,另一个供外部访问 有一个工作簿在内部环境中不断更新。当那本工作手册被保存时,我想 完成保存操作 删除标题为“红色”、“蓝色”和“绿色”的列 另存为“Newbook.xlsx”到外部sharepoint(如果文件存在) 保持原始工作簿处于打开状态 必须将书的原始副本原封不动地保存为正常副本,并将新副本保存到特定列以下 我尝试使用添加到“此工作簿”部分的以下代码: 其中模
Sub Save()
ActiveWorkbook.SaveAs ("C:\Users\me\Desktop\Test 1")
End Sub
我得到一个循环,它只是不断地保存一次又一次,不会结束。我还尝试使用此位代替save函数(测试删除行)
是的,它确实删除了我想要删除的列,但原始图书上的保存操作没有完成
我想我已经完成了大部分工作,我似乎无法把它带回家。在将其保存为另一个工作簿并立即启用之前,您需要将事件禁用为
Application.EnableEvents=False
。我认为这就是您进入循环的原因,因为您再次在Workbook\u AfterSave
事件开始时进入循环。
Sub Save()
ActiveWorkbook.SaveAs ("C:\Users\me\Desktop\Test 1")
End Sub
dim a as long, w as long, vDELCOLs as variant, vCOLNDX as variant
vdelcols = array("Blue","Red","Green")
with thisworkbook
for w=1 to .worksheets.count
with worksheets(w)
for a=lbound(vdelcols) to ubound(vdelcols)
vcolndx=application.match(vdelcols(a), .rows(1), 0)
if not iserror(vcolndx) then
.columns(vcolndx).entirecolumn.delete
end if
next a
end with
next w
end with