2013-07-09 57 views
1

我是VBA新手,但已成功創建了一些有用的Excel函數。我現在正在工作的那個,看起來應該很簡單,正在逃避我。我認爲我誤解了語法,需要一些指導。需要使用VBA函數指導在Excel中粘貼值

考慮以下屏幕截圖;我試圖在列E中創建函數,它只是D $ n中的VALUE。 enter image description here

到目前爲止,這是據我已經得到了:

Function PASTVALUE(q As String) 
q.PasteSpecial Paste:=xlPasteValues 
End Function 

,如果我理解正確的,在讀的輸入值(在我的情況下,細胞D$n的內容)作爲一個字符串,然後使用PasteValues粘貼它。

我需要以某種方式複製它之前我粘貼它?我認爲q As String參數是將它帶入函數的。

不過,如果我不是抄襲,是它試圖paste從空剪貼板......在這種情況下,我不想法什麼,我應該使用來實現這一目標。

幫助!

回答

3

你可以只「」轉讓「」的值(顯示),在這樣的

Function PASTEVALUE(rng As Range) 
    PASTEVALUE = rng.Text 
End Function 

或使用Evaluate()功能在該範圍內,以評估公式

Function PASTEVALUE(rng As Range) 
     PASTEVALUE = [rng] 
    End Function 
0

有一些功能在計算過程中您無法訪問的Excel對象模型;即在評估功能期間。廣義而言,他們是以某種方式操縱細胞價值的細胞。如果相反是真的,那麼Excel中的計算過程就會中斷。因此

粘貼剪貼板數據到工作表落入禁止類。

一個解決辦法是把你的代碼在宏;可通過工作表上的按鈕訪問。這超出了計算週期,因此是允許的。