我试图从多个组合框中获取信息并将它们放入 另一张纸。如果我将列更改为1,2,3,4 ......等,我就能做到。
但是我很难尝试在8,9,10中启动数据...然后在下一行重复。
我想我一定会错过一些小事......希望如此。
下面的代码填充了一次行,但是当我再次运行它时会写入它。 但如果我将列更改为1,2,3,4 ....它会写下一行...再次写下一行。
当我希望数据在H2中开始填充时,我不确定如何让它写下一行。
每次运行H3,H4,H5时,是否可以添加一些内容以使其写入下一行? - 这需要最多3,000行。
Private Sub Submit_Click()
Dim lRow As Long
Dim ws As Worksheet
Set ws = Worksheets("EvaluationTable")
lRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
' If Range("H2").Value = "" Then
' starts with H2 fills in values from combobox left to right on
With ws
.Cells(lRow, 8).Value = Me.CMB1.Value
.Cells(lRow, 9).Value = Me.CMB2.Value
.Cells(lRow, 10).Value = Me.CMB3.Value
.Cells(lRow, 11).Value = Me.CMB4.Value
.Cells(lRow, 12).Value = Me.CMB5.Value
.Cells(lRow, 13).Value = Me.TextBox1.Text
End With
'If Range("H2").Value > "" Then
' With ws
' ActiveCell.Offset(2, 0).Select
' .Cells(lRow, 8).Value = Me.CMB1.Value
' .Cells(lRow, 9).Value = Me.CMB2.Value
' .Cells(lRow, 10).Value = Me.CMB3.Value
' .Cells(lRow, 11).Value = Me.CMB4.Value
' .Cells(lRow, 12).Value = Me.CMB5.Value
' End With
Unload Me
'End If
' End If
End Sub
答案 0 :(得分:0)
这是将组合框中的数据转换为工作表的简便方法:
Option Explicit
Sub TestMe()
Dim cnt As Long
Dim startFrom As Long
startFrom = 10
For cnt = 1 To 3
Cells(startFrom + cnt, 1) = OLEObjects("ComboBox" & cnt).Object.Value
Next cnt
End Sub
在这里,您从第一个ComboBox开始,然后进入第三个。
如果组合框在一个表格上(正如我从Me.
的用法中猜测的那样,这是一种有效的方法,遵循上面的相同逻辑:
Private Sub Submit_Click()
Dim cnt As Long
Dim startFrom As Long
startFrom = 10
For cnt = 1 To 3
Cells(startFrom + cnt, 1) = Me.Controls("ComboBox" & cnt).Value
Next cnt
End Sub