gpt4 book ai didi

excel - 显示依赖于变量的备用用户窗体

转载 作者:行者123 更新时间:2023-12-04 21:09:48 26 4
gpt4 key购买 nike

我想根据 UserName 环境变量显示特定的 UserForm。我在整个代码的各个地方更新了用户表单,所以我认为创建两个独立的用户表单(具有截然不同的设计)然后使用逻辑在代码开头“设置”一个用户表单对象变量是最简单的(也是微不足道的)。我显然在这里误解了一些东西,因为当它到达 .Show 命令时,VBA 错误:

Dim usrForm As UserForm

If Environ("UserName") = "redacted" Then
Set usrForm = LlamaForm 'for specific user, form styled differently including picture of Llama
Else
Set usrForm = NormalForm 'for EVERYONE ELSE, normal professional looking form
End If

With usrForm 'initialize UserForm and display wait message
.Cancelbutton.Visible = False
.Proceedbutton.Visible = False
.Exitbutton.Visible = False
.labmsg.Caption = Chr(10) & Chr(10) & Chr(10) & "Starting background processes, please wait..."
.Show vbModeless
End With

我让这太复杂了吗?我真的希望在开始时只更改引用的表单对象,而不是在每次需要更新用户时引入带有冗余代码的逻辑。任何想法或改进将不胜感激。需要注意的是,因为它们的布局/设计大相径庭,我真的很想保留两个单独的用户表单,而不是操纵一个(我知道可以做到,但与理解我上面的方法相比,在这一点上做更多的工作不工作。)

最佳答案

您可以使用通用对象,但会丢失早期绑定(bind)功能

试试这个代码

Option Explicit

Public Sub ShowUserForm()

' You can use a generic object, but you lose the early binding features
Dim myUserForm As Object

If Environ("UserName") = "redacted" Then
Set myUserForm = New LlamaForm
Else
Set myUserForm = New NormalForm
End If

myUserForm.Show

End Sub

让我知道它是否有效

关于excel - 显示依赖于变量的备用用户窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59885455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com