无论如何要用 public 变量填充用户窗体文本框?
Anyway to populate a userform textbox with a public variable?
我正在尝试使用 public 变量填充用户窗体上的文本框,以允许用户复制并粘贴到外部程序中。我可以将基本字符串传递到文本框中,但似乎无法传递变量。这是我当前的代码:
VBA 单击按钮
Option Explicit
Public PathConfig As String
Public BuildableLand As String
Public Sub Import_Click()
PathConfig = "TestConfig"
BuildableLand = "TestBuildable"
CopyPaste.Show
CopyPaste.ConfigText.Text = PathConfig
CopyPaste.BuildableLandText.Text = BuildableLand
End Sub
用户表单
文本框分别命名为 'ConfigText' 和 'BuildableLandText'
用户表单代码
Private Sub ExitForm_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
CopyPaste.ConfigText.Text = PathConfig
CopyPaste.BuildableLandText.Text = BuildableLand
End Sub
当我单步执行代码时,PathConfig/BuildableLand 变量似乎没有将它们的值保存到用户窗体。 Public变量不够用吗?
上面代码的稍微改进版本可能看起来像这样
Option Explicit
Private Sub Import_Click()
Dim frm As CopyPaste
Set frm = New CopyPaste
With frm
.ConfigText.Text = PathConfig
.BuildableLandText.Text = BuildableLand
.Show
End With
End Sub
额外创建一个代号为shConf
的额外sheet用于您需要的配置值和具有以下功能的模块
Option Explicit
Function PathConfig() As String
'Using Names instead of a direct cell reference would probably better
PathConfig = shConf.Range("A1")
End Function
Function BuildableLand() As String
BuildableLand = shConf.Range("A2")
End Function
需要的用户窗体初始化事件中没有代码。
您还应该重新考虑在用户窗体的退出事件中使用 Unload
,因为这会破坏 class。请改用 Hide
!使用 Unload
用户表单不再存在,您无法检索用户输入。
我正在尝试使用 public 变量填充用户窗体上的文本框,以允许用户复制并粘贴到外部程序中。我可以将基本字符串传递到文本框中,但似乎无法传递变量。这是我当前的代码:
VBA 单击按钮
Option Explicit
Public PathConfig As String
Public BuildableLand As String
Public Sub Import_Click()
PathConfig = "TestConfig"
BuildableLand = "TestBuildable"
CopyPaste.Show
CopyPaste.ConfigText.Text = PathConfig
CopyPaste.BuildableLandText.Text = BuildableLand
End Sub
用户表单
文本框分别命名为 'ConfigText' 和 'BuildableLandText'
用户表单代码
Private Sub ExitForm_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
CopyPaste.ConfigText.Text = PathConfig
CopyPaste.BuildableLandText.Text = BuildableLand
End Sub
当我单步执行代码时,PathConfig/BuildableLand 变量似乎没有将它们的值保存到用户窗体。 Public变量不够用吗?
上面代码的稍微改进版本可能看起来像这样
Option Explicit
Private Sub Import_Click()
Dim frm As CopyPaste
Set frm = New CopyPaste
With frm
.ConfigText.Text = PathConfig
.BuildableLandText.Text = BuildableLand
.Show
End With
End Sub
额外创建一个代号为shConf
的额外sheet用于您需要的配置值和具有以下功能的模块
Option Explicit
Function PathConfig() As String
'Using Names instead of a direct cell reference would probably better
PathConfig = shConf.Range("A1")
End Function
Function BuildableLand() As String
BuildableLand = shConf.Range("A2")
End Function
需要的用户窗体初始化事件中没有代码。
您还应该重新考虑在用户窗体的退出事件中使用 Unload
,因为这会破坏 class。请改用 Hide
!使用 Unload
用户表单不再存在,您无法检索用户输入。