如果Cell full将文本写入Next Cell

时间:2014-02-01 21:37:53

标签: excel vba excel-vba excel-2013

如果在使用Excel的VBA中,你可以检查一个单元格中是否有文本,如果有(无限次),可以向下面的单元格写一些内容吗?我试过这样做:

Private Sub TextBox1_Change()
  Sheet2.Range("A").Value = Sheet1.TextBox1.Value
End Sub

这似乎改变了整个A栏。我希望Sheet1上的文本框将其文本写入Sheet2上“列A”中的第一个空白单元格。

1 个答案:

答案 0 :(得分:2)

  

我希望Sheet1上的文本框将其文本写入Sheet2上“列A”中的第一个空白单元格。

如果要查找最后一个非空单元格,然后在下一个单元格中写入您的值,请使用以下代码:

Private Sub TextBox1_Change()
   Dim lastrow As Long
   With Sheet2
       lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
       .Range("A" & lastrow + _
            IIf(lastrow = 1 And .Range("A1") = "", 0, 1)).Value _
        = Sheet1.TextBox1.Value
   End With
End Sub

如果您想在列A中找到第一个空单元格,(例如,如果您有A1A2A4中的数据,但不在A3中,那么第一个空单元格将A3)使用此代码:

Private Sub TextBox1_Change()
    Dim emptyRow As Long
    With Sheet2
        emptyRow = IIf( _
           .Range("A1") = "", 1, _
           IIf(.Range("A2") = "", 2, _
               Application.Min(.Cells(1, "A").End(xlDown).Row + 1, Rows.count)))
        .Range("A" & emptyRow).Value = "S"
    End With
End Sub