在下一个用户窗体上将变量值分配给文本框

时间:2019-01-24 05:42:23

标签: excel vba userform

我正在设置一个用户表单来捕获新的客户端数据。每个客户都分配有一个客户ID(数字),接下来将输入数据保存在Excel工作表中。第一个用户表单完成后,将打开一个带有估算设计摘要的新用户表单。

我想将第一个用户窗体中分配的客户端ID号保存到第二个用户窗体上的文本框,但是类型不匹配错误不断弹出。在调试时,它表明分配给变量的值没有被带到文本框中。

(相同的代码以前可以在这些相同的用户窗体上使用,而在以后的用户窗体上仍可以使用

Private Sub Continue1_Click()

'Determine empty row

Dim emptyRow As Long
Sheet5.Activate

emptyRow = WorksheetFunction.CountA(Range("B:B")) + 1

'Transfer userform data to spreadsheet

Cells(emptyRow, 2).Value = CName.Value
Cells(emptyRow, 3).Value = Business.Value
Cells(emptyRow, 4).Value = Region.Value
Cells(emptyRow, 5).Value = Email.Value
Cells(emptyRow, 6).Value = CNumber.Value
Cells(emptyRow, 7).Value = WSource.Value
Cells(emptyRow, 8).Value = Flow.Value
Cells(emptyRow, 9).Value = Pressure.Value
Cells(emptyRow, 10).Value = Irrigation.Value

'Load Design Estimation userform

DesignEst.Client_ID.Value = emptyRow - 1
Unload Me
DesignEst.Show

End Sub

如果emptyRow的值为5,则必须将此值分配给Client_ID用户表单上的DesignEst文本框,但当前会产生:

DesignEst.Client_ID.Value = ""

代替:

DesignEst.Client_ID.Value = "5"

1 个答案:

答案 0 :(得分:0)

是的,我之前也遇到过同样的问题。由于某种原因,用户窗体使用设计属性而不是在运行时分配的属性进行初始化。由于永久数据在相应的单元格中已经可用,因此您可以尝试在“ Form_initialize”事件上执行“设计估算”用户窗体分配。希望能奏效。