VBA: передача переменной между функциями для пользовательской формы - PullRequest
0 голосов
/ 05 ноября 2019

Я создаю пользовательскую форму 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

Ответы [ 2 ]

1 голос
/ 05 ноября 2019

Установка переменной общественных произведений, как указано в комментарии Плуатиана. Чтобы вставить его в нужный лист, вы можете использовать:

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
0 голосов
/ 05 ноября 2019

Вы можете использовать приватную переменную в своем проекте UserForm (установите ваши объявления вне Sub с private вместо dim)

, если переменную нужно использовать в других проектах / функциях: public variableили собственность

...