【发布时间】:2021-09-10 09:27:54
【问题描述】:
这是我想要做的:
文件应该根据用户的输入保存自己,即使有输入。这意味着,如果用户尚未进行任何输入,则 IF 语句应返回第一部分(这就是 UserName = "" 的原因)。但是如果用户之前已经输入了一些东西,我希望它返回 IF 语句的第二部分。
文件的原始名称是 20210910_Besprechungsnotizen_00_,如果 Jack 是第一个打开该文档并创建协议的人,则该名称应该是:20210910_Besprechungsnotizen_00_Jack,并且只询问 Jack 的姓名。如果 Jack 想要 Steve 浏览这个文档,那么应该意识到,Jack 已经保存了这个文档(输入了他的首字母或他的名字),它会询问 Steve 这个文档当前是哪个版本,并在 Jack 后面添加 Steve。意义: 20210910_Besprechungsnotizen_01_JackSteve 而史蒂夫只输入了他的名字和 1。
我是新手,非常感谢您的帮助! 这是我的代码:
Private Sub CommandButton3_Click()
Dim FilePath As String
Dim Filename As String
Dim MyDate As String
Dim UserName As String
If UserName = "" Then
FilePath = "//SRVDC\Arbeitsordner\Intern\Meetings\Entwürfe\"
MyDate = Format(Date, "YYYYMMDD")
Filename1 = "_Besprechungsnotizen_i_00_"
UserName = InputBox("Wer erstellt? (Name in Firmenkurzform)")
ActiveDocument.SaveAs2 FilePath & MyDate & Filename1 & UserName
Else
FilePath = "//SRVDC\Arbeitsordner\Intern\Meetings\Entwürfe\"
MyDate = Format(Date, "YYYYMMDD")
Filename1 = "_Besprechungsnotizen_i_0"
Filename2 = "_"
UserName = InputBox("Wer bearbeitet? (Name in Firmenkurzform)")
Version = InputBox("Welche Version? (in ganzen Zahlen)")
ActiveDocument.SaveAs2 FilePath & MyDate & Filename1 & Version & Filename2 & UserName
End If
End Sub
【问题讨论】:
-
虽然您的问题解释了您项目的目标,但尚不清楚您需要什么帮助。请edit your question 清楚地解释您需要帮助的地方。查看How do I ask a good question? 可能会有所帮助
-
逻辑不清楚。您应该在 If 语句之前询问 UserName = InputBox。或者使用 If ActiveDocument.Saved docs.microsoft.com/en-us/office/vba/api/word.document.save.
-
如果之前已经输入过用户名,您需要一些地方来存储用户名。您的代码似乎没有任何类似的东西,而且名为“UserName”的变量没有任何值分配。所以逻辑总是正确的。else 块永远不会被执行。您是否尝试在 excel 中执行此操作?
-
我编辑了原始帖子,希望它更容易理解我的目标是什么。现在我正在尝试用文字来做到这一点
-
@mishu36 你能详细说明一下吗?因为这正是似乎发生的事情。不管是否有人已经进入,逻辑总是正确的。请尝试像你知道你在向新手解释一样解释
标签: vba if-statement ms-word inputbox