Excel Personal.xlsb保存文档macros

我有一个macros,看看是否一个单元格包含这个string,如果这样执行一个“另存为”命令与此集名称标准。 当我尝试运行macrosif语句似乎不起作用。 当我一步一步地经历它碰到if语句,但保存personal.xlsb,而不是我正在处理的文件。 这里的代码我知道我有什么问题

Dim FName As String Dim FPath As String Dim answer As Integer If ActiveWorkbook.Sheets("Sheet1").Range("A1") = "String1" Then FPath = "C:\String1" FName = Sheets("Sheet1").Range("A1").Text If Len(FPath & "\" & FName) = 0 Then answer = MsgBox("Do you want to Save File As: " & FName & "?", vbYesNo + vbQuestion, "Microsoft Excel") If answer = vbYes Then ThisWorkbook.SaveAs Filename:=FPath & "\" & FName End If Else ThisWorkbook.Save End If End If 

我打开build议我最多的是检查文件是否包含一个string,如果是这样validation它不存在,如果是这样只是保存而不是另存为。

ThisWorkbook引用代码所在的工作簿。 据推测,该代码在Personal.xlsb,这就是为什么它保存XLSB文件,而不是activeworkbook。

试试这个:

 Dim FName As String Dim FPath As String Dim fullName As String Dim rng As Range Dim s as String s = "String1" With ActiveWorkbook Set rng = .Sheets("Sheet1").Range("A1") If rng.Value = s Then FPath = "C:\" & s FName = rng.Text fullName = FPath & "\" & FName If Len(fullName) = 0 Then If MsgBox("Do you want to Save File As: " & FName & "?", vbYesNo + vbQuestion, "Microsoft Excel") = vbYes Then .SaveAs Filename:=fullName End If Else .Save End If End If End With