簡體   English   中英

如何在 Excel VBA 中設置隱藏/過濾單元格的值?

[英]How to set value of hidden/filtered cells in Excel VBA?

我已經過濾掉了第 3 行和第 4 行。 我正在嘗試一次設置單元格值:

range("A2:A5").value = 5

它只將值設置為 A2 和 A5。 當然我可以一一設置單元格的值,但是速度很慢。

我怎樣才能快速正確地做到這一點?

有趣的事實: range("A3:A4").value = 5有效。 這是bug還是什么?

試試這個。 它不需要遍歷范圍內的所有單元格並填充所有過濾的單元格,隱藏和可見。

Sub test()
Range("A2:A5").FormulaArray = "5"    
End Sub

也許以取消隱藏列的方式開始宏,以再次隱藏它們來結束宏。 如果 Victor 的解決方案不起作用,請告訴我,我將為它編寫代碼。

編輯代碼;

Sub Filter()

'Remove existing filter in colmn "2"
    ActiveSheet.ListObjects("Tabel1").Range.AutoFilter Field:=2

'Change row A to value 5
Range("A2:A6").Value = "5"

'Re-activate filter
    'Filter in column 2
    'Only show values stating "Yes"
ActiveSheet.ListObjects("Tabel1").Range.AutoFilter Field:=2, Criteria1:="yes"

End Sub

這適用於我的桌子。 該能力有三列,分別命名為“1”、“2”和“3”。 第 2 列隨機包含“是”或“否”(以便於過濾證明)。

如果我篩選“是”並激活宏,則 A 列(“1”)中的所有內容現在都為“5”,包括隱藏的行。

您可以在填充范圍之前檢查自動過濾器,如果啟用 - 禁用它

If ActiveSheet.AutoFilter.FilterMode = True Then
    ActiveSheet.ShowAllData
    Range("A2:A5").Value = 5
Else
   Range("A2:A5").Value = 5
End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM