我寫了一個用戶定義函數來獲取單元格的顏色。Excel宏創建公式工作正常。宏複製和粘貼公式葉#Values
Function GetFillColor(Rng As Range) As Long
GetFillColor = Rng.Interior.ColorIndex
End Function
該函數的工作原理。
我寫了一個宏使用的功能上的電子表格:
Sub Macro5()
Macro5 Macro
Windows("KobeCurrent2.xlsm").Activate
Sheets("Direct").Select
Range("AP2").Select
ActiveCell.FormulaR1C1 = "=NUMBERVALUE(GetFillColor(RC[-26]))"
Range("AP2").Select
Dim LR As Long
LR = ActiveSheet.UsedRange.Rows.Count
Range("AP2").Select
Range("AP2").AutoFill Destination:=Range("AP2:AP" & LR)
End Sub
細胞AP2示出了單元格的顏色的值。 AP列中的其餘單元顯示#Value! 直到我雙擊#Value!,然後它變成單元格顏色的值。
我試圖乘以1,使用數據文本到列,但通過Excel宏執行時,我仍然得到#Value!它仍然需要雙擊才能解決。
任何幫助,將不勝感激。謝謝。
您必須小心使用依賴於範圍的非值方面的UDF。特別是,在這裏,您可能只需要強制重新計算以獲得更新。這很容易用CTRL + ALT + F9來完成,它將更新所有的單元格。通常,Excel VBA交互不支持在發生非值更改時更新引用。因此,更新單元格顏色,該公式不會針對相關單元格啓動,因爲Excel不會將其作爲更改進行計數。爲了處理這個問題,你通常將UDF標記爲Application.Volatile作爲UDF的第一行。 –