首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel Personal.xlsb保存文件宏

Excel Personal.xlsb保存文件宏
EN

Stack Overflow用户
提问于 2016-10-04 18:50:20
回答 1查看 389关注 0票数 0

我有一个宏来查看单元格是否包含此字符串,如果包含此宏,则执行具有此设置名称标准的"save“命令。当我试图运行宏时,if语句似乎不起作用。当我一步一步地完成时,它会命中if语句,但它保存的是personal.xlsb而不是我正在处理的文件。在这里,我知道我的代码有问题

代码语言:javascript
复制
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

我最愿意接受的建议是检查文件是否包含字符串,如果是的话,验证它不存在,如果是的话,只保存而不是另存为。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-04 18:58:47

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

试一试:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39859665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档