問題非常複雜。您可以在下面找到代碼的精髓。我想從一個特定的工作簿中獲取數據(其中有幾十個,循環部分工作正常),但下面的代碼不起作用,因爲工作表是在西里爾文,他們給的價值'? ?????」到sheet As String
參數。我想問問如何強制重命名工作簿而不打開它(沒有Workbook.Open(WorkbookNum1)
,因爲在這種情況下需要相當長的時間)。或者如何修改此代碼以應用表索引例如:sheets(3)
。我將衷心感謝您的幫助!如何處理工作表(Unicode VBA顯示和處理)中出現錯誤(#REF)的西裏爾字母,VBA
Private Function GetValue(path, file, sheet, ref)
Dim arg As String
'Make sure the file exists
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
'Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
'Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function
Sub TestGetValue()
p = "c:\XLFiles\Budget"
f = "Budget.xls"
s = "Sheet1"
a = "A1"
MsgBox GetValue(p, f, s, a)
End Sub
您是否嘗試過打開的工作簿和使用* Sheet1中,Sheet2中,工作表Sheet 3 * * codenames **而不是西里爾文工作表名稱?任何與VBA有關的事情都非常以EN-US爲中心,所以工作表代號應該是標準的默認值。 – Jeeped
即使VBA循環打開並關閉它也需要10-15分鐘......並且只需要兩個數據...在2張/工作簿上:/它們具有相同的組織,但工作簿的數量是大......:/ – svi
嗯......我認爲現代電腦的速度很慢,可能需要10-15分鐘。必須是相當計算密集的。 – Jeeped