如何从组合框中读取,但写入excel

时间:2017-12-18 16:28:02

标签: vba

我试图从多个组合框中获取信息并将它们放入 另一张纸。如果我将列更改为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

1 个答案:

答案 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