我正在尝试用VBA编写一个程序,当文档打开时,会出现一个消息框,要求用户继续输入。?

我正在尝试用VBA编写一个程序,当文档打开时,会出现一个消息框,要求用户继续输入。?,vba,Vba,在此框中,它将显示打开的文档、您阅读的最后一个版本以及文档的当前最新版本。文档的名称不同,由3个因素分隔:例如QRS-RTY-006.G.docm,其中QRS-RTY-对于所有文档都是相同的,006.G是告诉我需要使用哪个版本来标识当前和上次读取的版本的部分,而.docm对于每个文档都保持不变 当前代码: Dim A As String Dim B As String = Name Dim C As String Dim D As String = Name

在此框中,它将显示打开的文档、您阅读的最后一个版本以及文档的当前最新版本。文档的名称不同,由3个因素分隔:例如QRS-RTY-006.G.docm,其中QRS-RTY-对于所有文档都是相同的,006.G是告诉我需要使用哪个版本来标识当前和上次读取的版本的部分,而.docm对于每个文档都保持不变

当前代码:

    Dim A As String
    Dim B As String = Name

    Dim C As String
    Dim D As String = Name

    A = Split(B, "_")(0)
    C = Split(D, "_")(1)

    MsgBox("You have opened " & A & " Revision " & C & " . The last revision you read was ___. The current revision is  ___. Would you like to compare? ", vbYesNo)
    If vbYes Then

    End If

这应该是一个良好的开端:

Private Sub Document_Open()

Dim dName As String, _
    dVersion As String, _
    mAnswer As Integer, _
    SrcFile As String, _
    PossFiles As String

dName = Left(ActiveDocument.Name, 7)
dVersion = Right(Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 5), 5)

mAnswer = MsgBox("You have opened : " & dName & ", Revision : " & dVersion & "." & Chr(13) & _
        "The last revision you read was ___." & Chr(13) & _
        "The current revision is  " & dVersion & Chr(13) & _
        Chr(13) & Chr(13) & "Would you like to compare? ", vbYesNo)

If mAnswer <> vbYes Then
    'vbNo : They don't want to compare
Else
    'vbYes : They want to compare
    scrFile = Dir(ActiveDocument.Path & "\" & dName & "*.docm")
    Do While scrFile <> ""
        PossFiles = PossFiles & Dir & Chr(13)
        scrFile = Dir
    Loop
    If PossFiles <> vbNullString Then
        MsgBox PossFiles
    Else
        MsgBox "No other files found"
    End If
End If

End Sub
私有子文档\u Open()
Dim dName As String_
作为字符串的dVersion_
mAnswer作为整数_
SrcFile作为字符串_
将文件转换为字符串
dName=Left(ActiveDocument.Name,7)
dVersion=Right(Left(ActiveDocument.Name,Len(ActiveDocument.Name)-5),5)
mAnswer=MsgBox(“您已打开:&dName&”,修订版:&dVersion&“&Chr(13)&”_
“你读到的最后一次修订是____;。”&Chr(13)&_
“当前版本为”&D版本&Chr(13)和_
Chr(13)和Chr(13)以及“您想比较吗?”,vbYesNo)
如果是,那么
不,他们不想比较
其他的
是的,他们想比较一下
scrFile=Dir(ActiveDocument.Path&“\”&dName&“*.docm”)
当文件“”时执行此操作
PossFiles=PossFiles&Dir&Chr(13)
scrFile=Dir
环
如果是空字符串,则
MsgBox文件
其他的
MsgBox“未找到其他文件”
如果结束
如果结束
端接头

很抱歉再添加一点细节,我想让它使用搜索功能来区分不同之处。因此,最新的文档都存储在一个单独的驱动器上,所以我希望程序在该驱动器中搜索QRS-RTY-006,然后在文本框中告诉我后面的内容。我希望一切都很清楚,如果需要,请要求进一步澄清。您如何知道用户阅读的最后一个版本???你说单独开车是什么意思?打开的文件与其他版本不在同一文件夹中?