在文本框中输入多行并在单个列的不同行中显示每个值

时间:2016-10-06 20:36:40

标签: vba excel-vba excel

我正在尝试在文本框中输入多行,并在excel中的单个列的不同行中显示每个值,我的代码输入列的不同行中的所有值。代码如下

Private Sub CommandButton1_Click()
    Dim i As Variant
    For Each i In Split(TextBox1.Text, vbCrLf)
        With Range("A1")
            lastrow = ThisWorkbook.Worksheets("sheet1").Range("A" & Rows.Count).End(xlUp).Row + 1 
            ThisWorkbook.Worksheets("sheet1").Range("A" & lastrow).Value = TextBox1.Value
        End With
    Next
    TextBox1.Text = ""
End Sub

有什么建议吗?您的回复将受到高度赞赏

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你想让文本框中的每一行都在自己的行中,这样就行了

Private Sub CommandButton1_Click()

Dim i As Variant
Dim rowCounter As Long
    rowCounter = 1
    For Each i In Split(TextBox1.Text, vbCrLf)
        'start at row 1 column A
        Cells(rowCounter, 1).Value = i
        rowCounter = rowCounter + 1
    Next
    TextBox1.Text = ""
End Sub

答案 1 :(得分:0)

无需迭代。 Split返回一个数组,您可以使用该数组一次填充所有行。

enter image description here

Private Sub CommandButton1_Click()
    Dim Target As Range
    Dim Data As Variant

    If TextBox1.Text = "" Then Exit Sub
    Data = Split(TextBox1.Text, vbCrLf)

    With Worksheets("sheet1")
        Set Target = .Range("A" & .Rows.Count).End(xlUp)
        If Target.Value <> "" Then Set Target = Target.Offset(1)

        Target.Resize(UBound(Data) + 1).Value = Application.Transpose(Data)
    End With

    TextBox1.Text = ""
End Sub