【发布时间】:2021-01-21 17:35:20
【问题描述】:
这是我为这张表格制作的第一个可用的用户表单:Add_Form
我正在尝试制作第二个用户表单来编辑使用第一个用户表单创建的记录。除了“企业名称”文本框 (Textbox1) 被 Combobox5 替换外,外观几乎相同。
Combobox4,员工组合框是从工作簿中名为“员工”的第二张工作表中填充的。我认为这可能是我的问题的根源。
Add_Form 的组合框代码是:
Private Sub UserForm_Activate()
With Me.ComboBox1
.Clear
.AddItem ""
.AddItem "Weekly"
.AddItem "Biweekly"
.AddItem "Monthly"
.AddItem "As Needed"
End With
With Me.ComboBox2
.Clear
.AddItem ""
.AddItem "Check"
.AddItem "Debit/Credit Card"
.AddItem "Direct Deposit"
.AddItem "Other"
End With
With Me.ComboBox3
.Clear
.AddItem ""
.AddItem "Weekly"
.AddItem "Biweekly"
.AddItem "Monthly"
.AddItem "As Needed"
End With
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Employees")
Dim i As Integer
Me.ComboBox4.Clear
Me.ComboBox4.AddItem ""
For i = 2 To sh.Range("A" & Application.Rows.Count).End(xlUp).Row
Me.ComboBox4.AddItem sh.Range("A" & i).Value
Next i
End Sub
我希望这个 Edit_Form 发生的事情是 Combobox5 从第一张表的 A 列“客户”中填充,然后根据所选业务理想地填写表格的其余部分。我试过了
Me.ComboBox5.Clear
Me.ComboBox5.AddItem ""
For i = 2 To sh.Range("A" & Application.Rows.Count).End(xlUp).Row
Me.ComboBox5.AddItem sh.Range("A" & i).Value
Next i
和
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = Sheets("Employees").Range("A")
Set rng2 = Sheets("Customers").Range("A")
Dim i as Integer
Me.ComboBox4.Clear
Me.ComboBox4.AddItem ""
For i = 2 To sh.rng1("A" & Application.Rows.Count).End(xlUp).Row
Me.ComboBox4.AddItem sh.rng1("A" & i).Value
Me.ComboBox5.Clear
Me.ComboBox5.AddItem ""
For i = 2 To sh.rng2("A" & Application.Rows.Count).End(xlUp).Row
Me.ComboBox5.AddItem sh.rng2("A" & i).Value
Next i
但我什至无法填充 Combobox5。有什么想法吗?
【问题讨论】:
-
Application没有Rows属性。将所有Application.Rows.Count更改为sh.Rows.Count(或您当时使用的任何工作表变量)