如果单元格将文本写入下一个单元格

在Excel的VBA中,如何检查一个单元格是否包含文本,并在下面的单元格中写入内容(无限次)? 我试图做到这一点:

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

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

我希望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 

如果你想在列Afind第一个空单元格(即如果你有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