[英]Need guidance with a VBA function to paste values in Excel
我是VBA的新手,但已成功創建了一些有用的Excel功能。 我現在正在努力的那個,看起來應該很簡單,就是在逃避我。 我想我誤解了語法,需要一些指導。
考慮以下屏幕截圖; 我試圖在E列中創建函數,它只是來自D $ n的VALUE。
到目前為止,這是我已經得到的:
Function PASTVALUE(q As String)
q.PasteSpecial Paste:=xlPasteValues
End Function
如果我理解的話,它正在讀取輸入值(在我的例子中,單元格D$n
的內容)作為String,然后使用PasteValues
粘貼它。
在粘貼之前,我是否需要以某種方式復制它? 我認為q As String
參數是將它帶入函數的原因。
不過,如果我沒有抄襲,被它試圖paste
從空剪貼板......在這種情況下,我不知道我應該使用做到這一點。
救命!
您可以像這樣“轉移”'(顯示)值
Function PASTEVALUE(rng As Range)
PASTEVALUE = rng.Text
End Function
或使用Evaluate()函數來評估該范圍內的公式
Function PASTEVALUE(rng As Range)
PASTEVALUE = [rng]
End Function
Excel的對象模型有一些在計算過程中無法訪問的功能; 即在評估功能期間。 從廣義上講,他們是以某種方式操縱細胞價值的人。 如果反過來是真的,那么Excel中的計算過程就會中斷。
因此,將剪貼板數據粘貼到工作表中會屬於禁用類別。
一種解決方案是將代碼放在宏中; 可以通過工作表上的按鈕訪問。 這超出了計算周期,因此是允許的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.