你好,遇到CALL
问题
我创建了一个名为Daily_Proto_1
的子程序
它将数据从用户表单复制到我的工作表:这是代码:
Public Sub Daily_Proto_1()
Dim LastRow As Long, ws As Worksheet
Set ws = Sheets("DailyRep")
LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 'Finds the last blank row
'Adds the TextBox1 into Col A & Last Blank Row
'Adds the TextBox2 into Col B & Last Blank Row
'Adds the ComboBox1 into Col C & Last Blank Row
'Ect.
ws.Range("A" & LastRow).Value = TextBox1.Text
ws.Range("B" & LastRow).Value = TextBox2.Text
ws.Range("C" & LastRow).Value = ComboBox1.Text
ws.Range("D" & LastRow).Value = TextBox3.Text
ws.Range("E" & LastRow).Value = ComboBox2.Text
ws.Range("F" & LastRow).Value = ComboBox3.Text
End Sub
现在在我的用户表单中,我有一个提交按钮,应该按照下面的规定调用此例程:
Private Sub CommandButton1_Click()
Call Module1.Daily_Proto_1
End Sub
这样做的原因是我可以将其包含在另一个按钮中,但会有一些额外的说明。
当我在Private Sub CommandButton1_Click()
下运行代码时,它运行得很完美,但是当我将它移动到Public Procedure时,它会给我以下错误:
任何人都可以告诉我,我在这里做错了吗
答案 0 :(得分:1)
在TextBox1之前添加用户表单的名称。例如
ws.Range("A" & LastRow).Value = UserForm1.TextBox1.Text
或者更确切地说使用
with UserForm1
end with
和点是控制名称。
答案 1 :(得分:0)
我认为您可能需要在textbox1.text之前规定用户名的名称。
ws.Range("A" & LastRow).Value = UserForm1.textbox1.text
(将 Userform1 替换为您的用户表单名称)