Excel 存储了一些信息的加载项

Excel Add-in with some info stored

我在 Excel 中创建了一个 UserForm1 并将其保存为加载项。这个加载项工作正常,但它不存储我需要的一些数据(不存储它本身而不是打开的 excel)。我必须在单元格 A1 和 A2 中存储一些信息(在 A1 用户名中,在 A2 中是今天的日期)。

当我运行此加载项时,UserForm1 不包含这些值。

有什么方法可以存储用户名并获取更新日期?

这是 UserForm1 的代码:

Private Sub UserForm1_Initialize()    
Me.DocumentName.Text = ActiveWorkbook.FullName
DocumentName.Visible = False

TextBoxDate.Value = Worksheets("Sheet1").Cells(2, "A").Value
TextBoxDate.Value = CDate(TextBoxDate.Value)

UserName.Visible = False
Userform1.UserName.Text = CStr(Range("A1").Value)

'If A1 is empty pops up a UserRegister form
If UserName = "" Then 
UserRegister.Show
End If    
End Sub

用户注册表单代码:

Private Sub UserName_Change()
Sheets("Sheet1").Range("A1") = UserName.Text
End Sub

' I want to store the UserName, so the user does not have to enter it every single time
Private Sub CommandButtonGO_Click()
ThisWorkbook.Save 
Unload Me
End Sub

要获取日期,我只是在单元格 A2 中使用公式 =TODAY()。我知道还有其他方法,但我发现这个很简单。

你能试试这个吗?

用户窗体用户窗体1:

Private Sub UserForm1_Initialize()
    Me.DocumentName.Text = ActiveWorkbook.FullName
    DocumentName.Visible = False

    TextBoxDate.Value = ThisWorkbook.Worksheets("Sheet1").Range("A2").Value
    'TextBoxDate.Value = CDate(TextBoxDate.Value)

    UserName.Visible = False
    UserForm1.UserName.Text = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value

    'If A1 is empty pops up a UserRegister form
    If Len(UserName.Text) = 0 Then
        UserRegister.Show
    End If
    Debug.Print "Name: " & ThisWorkbook.Worksheets("Sheet1").Range("A1").Value
    Debug.Print "Date: " & ThisWorkbook.Worksheets("Sheet1").Range("A2").Value
End Sub

用户表单用户注册:

Private Sub UserName_Change()
    CommandButtonGO.Enabled = Not (UserName.Text = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value)
End Sub

' I want to store the UserName, so the user does not have to enter it every single time
Private Sub CommandButtonGO_Click()
    ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Trim(UserName.Text)
    ThisWorkbook.Worksheets("Sheet1").Range("A2").Value = Now
    ThisWorkbook.Save
    Unload Me
End Sub

Private Sub UserRegister_Initialize()
    UserName.Text = UCase(Environ("USERNAME"))
End Sub

好吧,我想出了办法。

为了获取用户名,我使用了此处的代码:Getting computer name using VBA(它还说明了如何在那里获取用户名)

为了获取当前的输入日期,我刚刚将输出代码更改为:

 ActiveCell.Offset(1, 0).Select 'Date column A
 ActiveCell.Value = Date

它在我的日志文件中输出当前日期 excel。

非常感谢您的帮助=)