如果在使用Excel的VBA中,你可以检查一个单元格中是否有文本,如果有(无限次),可以向下面的单元格写一些内容吗?我试过这样做:
Private Sub TextBox1_Change()
Sheet2.Range("A").Value = Sheet1.TextBox1.Value
End Sub
这似乎改变了整个A栏。我希望Sheet1上的文本框将其文本写入Sheet2上“列A”中的第一个空白单元格。
答案 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
中找到第一个空单元格,(例如,如果您有A1
,A2
,A4
中的数据,但不在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