我有兩列數據,A和B.我想在列B中查找空白單元格,然後從列A中的相應單元格複製數據(如果A也不爲空)。宏查找空白單元格並替換
回答
我會使用SpecialCells:
Sub fillblanks()
Dim rngBlanks As Range
Dim rng As Range
Dim cl As Range
Set rng = ActiveSheet.UsedRange.Columns(2)
Set rngBlanks = rng.SpecialCells(xlCellTypeBlanks)
For Each cl In rngBlanks.Cells
With cl
If (.Value = "") And (.Offset(0, -1).Value <> "") Then
.Value = .Offset(0, -1).Value
End If
End With
Next
End Sub
有趣的是,玩我的答案與你的答案,我想我也會檢查你的代碼也通過刪除線檢查偏移量的空白,這實際上減緩了近33%的潛力。有意義,因爲檢查是否比對單元格的修改快得多。但我沒有意識到它會減緩33%。不知道你是否知道在你寫它時它會更快,或者你只是遵循Askers指南,但我覺得它很有趣。如果您有興趣玩這個工作簿,我會上傳示例工作簿。 – user2140261
我已預先上傳示例工作簿[Here](http://www.mediafire.com/download/b8sxpkgvsizak60/Book1.xlsm)。 – user2140261
我只是遵循指導方針,甚至沒有考慮性能,但它確實有意義 - 對工作表對象的任何更改都非常耗時。 –
Sub Sample2()
On Error Resume Next
With Columns("B").SpecialCells(xlCellTypeBlanks)
.FormulaR1C1 = "=RC[-1]"
.Value = .Value
End With
End Sub
你問,好像不跳過空白單元格,如果在一個單元格是空白的,這是因爲我這次失敗並沒有做完全看看爲什麼用另一個空白替換和空白將是一個問題。如果是這樣,通過簡單地修改.FormulaR1C1 = "=RC[-1]"
來考慮空白是非常簡單的。
不需要VBA。選擇ColumnB,HOME>編輯,查找&選擇,轉至特殊...,選擇空白(只),
=
←,按Ctrl +輸入。
- 1. 僅在空白單元格上查找宏查詢
- 2. 替換SQL中的空白單元格?
- 3. 用NULL替換空白單元格?
- 4. Excel查找並替換宏
- 5. 查找/替換適當格式化日期單元格的宏
- 6. 宏檢查空白單元格並突出顯示它們
- 7. 用單個空格替換空白
- 8. 查找與空白單元格相關的單元格
- 9. 查找並替換VBA宏太大
- 10. 用字符串值替換空白/空單元格
- 11. 宏複製並粘貼到下一個空白單元格中
- 12. 查找並用單元格號替換當前單元格的值
- 13. 空白單元格
- 14. 在相鄰的單元格中查找並替換
- 15. 如何查找特定單元格並用文本替換
- 16. jquery查找/包含並替換表單元格值
- 17. AutoFilter找到空白單元格
- 18. 查找並用空白替換數組中的tab?
- 19. 用字符串內容替換空白單元格
- 20. 如何用空白單元格替換'0'值?
- 21. Excel VBA - 如何找到空白單元格和從活動單元格到空白單元格的總和
- 22. 用於替換2列查找中的單元格內容的Excel宏
- 23. 將單元格與以下空白單元格合併
- 24. 用單個空白替換單詞之間的多個空格
- 25. 替換空白行和空格java
- 26. 宏從單元格中查找數據並替換不同表格上的數據
- 27. 使用單元格引用檢查空白單元格
- 28. sed用空格查找/替換行
- 29. 找到並替換單元格陣列中的單詞
- 30. LibreOffice替換宏 - 只替換一次並用格式替換
如果您將空白單元格從'A'複製到'B'中的空白單元格,是否真的存在任何問題? – user2140261
不 - 我只是不想覆蓋B中的內容,如果它已經存在 – user2497437