我们继承了其他人的电子表格和宏,只想更新保存文件的路径。我们已经能够在每个其他电子表格上执行此操作,但是这个以不同的方式编写,只是更新路径本身并不起作用。有人可以解释以下代码中发生的事情,这些代码阻止了我们和/或我们如何将保存更新为路径?
Sub SpecialPaste()
' SpecialPaste Macro
' Macro recorded 12/9/02 by TPC
mySpecialPaste = InputBox(Prompt:="File Name?", _
Title:="ENTER THE Save Name", Default:="LCY XXX 2013")
If mySpecialPaste = vbNo Then
Exit Sub
ElseIf mySpecialPaste = vbYes Then
Dim mysheet As Worksheet
Set mysheet = Worksheets(1)
mysheet.SaveAs FileName:="N:\All Users Desktop\Mthly Form Records\Mo BD Logs\BD Log 2013\BD Log Mar 13"
mysheet.Unprotect "snowbird"
End If
Range("B6:H36").Select
Range("G6").Activate
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow.ScrollRow = 6
Range("E2").Select
Set mysheet = Worksheets(1)
mysheet.Select
mysheet.Protect "snowbird", True, True, True
End Sub
答案 0 :(得分:0)
更改以下代码:
If mySpecialPaste = vbNo Then
Exit Sub
ElseIf mySpecialPaste = vbYes Then
Dim mysheet As Worksheet
Set mysheet = Worksheets(1)
mysheet.SaveAs FileName:="N:\All Users Desktop\Mthly Form Records\Mo BD Logs\BD Log 2013\BD Log Mar 13"
mysheet.Unprotect "snowbird"
End If
到
If mySpecialPaste = "" Then
Exit Sub
Else
Dim mysheet As Worksheet
Set mysheet = Worksheets(1)
mysheet.SaveAs FileName:="K:\BDT\" & mySpecialPaste & ".xlsx"
mysheet.Unprotect "snowbird"
End If
If..End If
块永远不会被执行,因为来自InputBox的响应永远不会是vbYes
或vbNo
。 mySpecialPaste
变量设置为InputBox中的值。因此,如果它为空,则退出Sub,否则将文件保存到具有给定文件名的所需位置。