2013-11-23 79 views
0

在myFunction中,我想用函數的參數和上次執行的時間在工作表中創建一個日誌。Excel VBA:執行函數後調用Sub子程序

我的代碼是這樣的:

Function myFunction(arg1, arg2 As String) 

    //code here 

    Sheets("Sheet1").Range("A1") = arg1 
    Sheets("Sheet1").Range("B1") = arg2 
    Sheets("Sheet1").Range("C1") = datetime.Now 

End Function 

此功能不過去的3線工作(它,否則不會)。

我也試圖創建一個單獨的模塊完成這個任務:

Function myFunction(arg1, arg2 As String) 

     //code here 

    Call myLog(arg1,arg2) 

    End Function 

但它不提前工作,要麼

Public Sub myLog(arg1,arg2) 
    Sheets("Sheet1").Range("A1") = arg1 
    Sheets("Sheet1").Range("B1") = arg2 
    Sheets("Sheet1").Range("C1") = datetime.Now 
End Sub 

感謝您的幫助! 「

+0

這裏看看:http://www.mrexcel.com/forum/excel-問題/ 617567-calling-another-sub-visual-basic-applications.html –

+0

@Mark函數的兩個參數都聲明爲Public –

+0

代碼是否會給你一個實際的錯誤,或者是否運行,但不填寫單元格? – Blackhawk

回答

1

」當我在單元格中鍵入函數時,它只返回#VALUE!錯誤「。

函數只能修改它從中調用的單元。所以當你嘗試修改其他單元格時你會得到一個錯誤。

這裏有一些引用可能是有用的:

Making Excel functions affect 'other' cells

VBA - Update Other Cells via User-Defined Function

http://www.vbforums.com/showthread.php?508759-Counting-Particular-Letter-Occurrences-in-a-String

+0

考慮到UDF的所有依賴關係(它可能影響依賴於它的其他幾個單元),執行此操作似乎沒有意義。也許將數據推送到數組會更好(消耗更少的資源)。感謝您的回答 –