想知道如何遍歷一個列並找到下一個空單元格並從我的Visual Basic程序寫入到Excel文件中?寫入VBA的空單元
現在單元格A1和A2中都有文本,但是我希望我的程序從我的按鈕單擊事件寫入到單元格A3,並且能夠循環,所以下次我使用它時,它將寫入單元格A4,而不是下次A5等。
有很多問題顯示如何測試或檢查單元格是否爲空,但我找不到可寫入空單元格的單元格。
想知道如何遍歷一個列並找到下一個空單元格並從我的Visual Basic程序寫入到Excel文件中?寫入VBA的空單元
現在單元格A1和A2中都有文本,但是我希望我的程序從我的按鈕單擊事件寫入到單元格A3,並且能夠循環,所以下次我使用它時,它將寫入單元格A4,而不是下次A5等。
有很多問題顯示如何測試或檢查單元格是否爲空,但我找不到可寫入空單元格的單元格。
可以使用任一這些功能:在一列中通過細胞
第一個Function FindEmptyCell(mySheet As Worksheet, initCell As Range) As Range
Dim i As Long, rows As Long
rows = Sheet1.rows.Count
For i = 0 To rows
If IsEmpty(initCell.Offset(i)) Then
Set FindEmptyCell = initCell.Offset(i)
Exit For
End If
Next i
End Function
Function FindEmptyCell2(mySheet As Worksheet, initCell As Range) As Range
Set FindEmptyCell2 = mySheet.Cells(mySheet.rows.Count, initCell.Column).End(xlUp).Offset(1)
End Function
迭代從上到下,查找並返回第一空單元格。第二個從下往上搜索列,找到第一個佔用的單元格,並在下一行返回空單元格。
調用這些函數在你點擊按鈕的方法類似:以上
FindEmptyCell(Sheet1, Sheet1.Range("A1")).Value = "whatever"
FindEmptyCell2(Sheet1, Sheet1.Range("A1")).Value = "whatever"
「工作表Sheet1」是一個工作表代號。您可以按名稱或索引傳遞工作表:工作表(「我的工作表名稱」)或工作表(2)。
VBA中有一個唯一標識符,用於確保空白單元格。這不包括包含空字符串的單元格;例如=IF(TRUE, "", "Something that is not an empty string')
。對於真正的空白單元格,它可以避免循環。
dim rng as range
with activesheet.columns("A")
on error resume next
set rng = .specialcells(xlcelltypeblanks)
on error goto 0
if not rng is nothing then
'do something with the truly empty cells like ...
rng = "something"
end if
end with
如果運行上的有源片以上,則可能會注意到,僅在列中的空白單元所使用的範圍內一個已填充了東西。這是Excel VBA開銷的一部分,因此您不會將值填入空白未使用的單元格,直到A1048576。這種覆蓋全列參考的方法應該依賴於而不是。 There's有很多方法來引用一系列單元格,而不依賴VBA對應該包含什麼和不應該包含什麼的猜測。
如需引用一系列單元格的幫助,可以參閱here。
Stack Overflow是編程愛好者的網站。在這裏獲得幫助的最佳方式是首先嚐試一些東西。如果你陷入困境,做一些研究,嘗試自己修理東西,然後才問你一個關於你的嘗試的具體問題,並展示你所嘗試過的東西。在沒有證明研究成果的情況下詢問完整解決方案的問題通常會被低估並關閉。 – 2015-04-05 20:26:01
有很多問題顯示如何測試或檢查單元格是否爲空,但我找不到可寫入空單元格的單元格。 '你可以使用該代碼來找到它,然後使用foundcell.value =「我的文本」' – 2015-04-05 20:34:33