簡體   English   中英

VBA評估功能不起作用。 錯誤2015

[英]VBA Evaluate function not working. Error 2015

我正在嘗試將OsiSoft Pi Datalink與Excel VBA連接起來,並將輸出放到變量中以進行進一步的VBA處理。

在excel單元格中運行命令時,它可以正常工作,但是當我嘗試在VBA中運行命令時,出現“錯誤2015”

在此處輸入圖片說明

這是在單元格中正常工作的代碼:

= PITimeDat("PP2941FIC01_PV_S", "7/07/2018  11:01:58 AM", "", "interpolated")

將其轉換為VBA:

Sub getPiData()

    Dim tagName As String
    tagName = "PP2941FIC01_PV_S"

    Dim timeStamp As String
    timeStamp = "7/07/2018  11:01:58 AM"

    Dim rootPath As String
    rootPath = ""

    Dim retrieveMode As String
    retrieveMode = "interpolated"

    Dim result As String
    result = CStr(Application.Evaluate("=PITimeDat(tagName, timeStamp, rootPath, retrieveMode)"))

    Debug.Print (result)

End Sub

我檢查了以下VBA參考,它們似乎也是正確的:

在此處輸入圖片說明

在用戶指南中沒有可用的信息,也沒有我可以在互聯網上找到的將VBA正確連接到Pi Datalink的信息。

我在stackoverflow上找到了它,但沒有解釋問題:

使用VBA從PI DataLink中提取數據

我可能缺少真正基本的東西,但似乎我正在VBA中執行與單元中完全相同的代碼。 單元格返回一個值,而VBA剛返回一個錯誤。

在此先感謝您的幫助

cyboashu提出的觀點是一個很好的觀點。 但是,由於語法的原因,您可能還會收到此錯誤。

使用Evaluate ,必須完全按照您希望對其進行評估的方式傳遞字符串。 您的代碼正在傳遞變量的名稱,而不是它們的值。 如果我可以簡化一個例子。 以下代碼將返回錯誤(在這種情況下為2029,這是#NAME錯誤):

Dim dat As Variant
Dim txt As String

txt = "25 December 1966"

dat = Application.Evaluate("=DateValue(txt)")

在此示例中,您將需要創建字符串,以便對txt進行求值,如下所示:

Dim dat As Variant
Dim txt As String

txt = "25 December 1966"

dat = Application.Evaluate("=DateValue(""" & txt & """)")

我懷疑這是原因,因為如果必需的字符串中缺少反逗號,則Evaluate將返回2015錯誤。 例如,這樣做:

Dim dat As Variant
Dim txt As String

txt = "25 December 1966"

dat = Application.Evaluate("=DateValue(" & txt & ")")

我沒有庫可以測試您的確切代碼,但是請嘗試重寫您的評估字符串以合並變量的值,並記住也要傳入逗號。

暫無
暫無

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

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