首页 > 解决方案 > VBA:在用户窗体的函数之间传递变量

问题描述

我正在创建一个 vba 用户表单,在完成表单后,带有表单详细信息的字符串变量将粘贴到工作簿中的另一个工作表中。

dStr在使用单击 addBtn 后,我想将该值粘贴到新工作表中。将不胜感激任何帮助。我在其他地方读到过,您可以将变量设置为 public,但也不确定如何设置。

Sub UserForm_Initialize()

Dim valueUSD, name, ric, pStr, sitchStr As String
Dim i, lRow As Long

i = 2
ric = Worksheets("Tester").Range("H" & i)
name = Worksheets("Tester").Range("B" & i)
valueUSD = Worksheets("Tester").Range("C" & i)
sitchStr = ""
dStr = ""

pStr = ric & "   " & name & "   " & valueUSD & "   "

Label1.Caption = pStr

TextBox2.Value = ""

If activeCheck.Value = True Then
    sitchStr = sitchStr + activeCheck.Caption
ElseIf itwCheck.Value = True Then
    sitchStr = sitchStr + itwCheck.Caption
Else
    sitchStr = ""
End If

dStr = pStr & vbNewLine & sitchStr & ", " & TextBox2.Value

End Sub

Sub addBtn_Click()

Application.ScreenUpdating = False
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Dim myData As DataObject

Dim lastRow As Long


End Sub

标签: excelvbauserform

解决方案


将变量 public 设置为评论中提到的 Pluatian 。要将其插入所需的工作表中,您可以使用:

set pasteSheet = Application.Worksheets("Name of Paste Sheet") '<- input name of Sheet you want to paste it in

pasteSheet.Range("A1").Value = dstr '<- input cell you want to paste it in in Range

或者代替 Range 属性

pasteSheet.Cells(1, 2) = dstr '<- 1 is the line number and 2 the Column Number, this example refers to Cell B1

推荐阅读