我的一位朋友擔任保險公司的分析師,並使用Visual Basic for Applications(VBA)編寫腳本。語言無關的方式來引用「表」?
由於她的公司在不同的歐洲國家設有辦事處,她需要儘可能使語言無關。
最近出現的一個問題是如何處理Excel文檔並參考工作表(例如Sheet1,Sheet2),而無需在歐洲主要語言中翻譯此術語。
有人知道Excel是否提供了一個常量列表,她可以使用它訪問不同的信息片段,而不管Windows/Excel的本地化版本如何?
謝謝。
我的一位朋友擔任保險公司的分析師,並使用Visual Basic for Applications(VBA)編寫腳本。語言無關的方式來引用「表」?
由於她的公司在不同的歐洲國家設有辦事處,她需要儘可能使語言無關。
最近出現的一個問題是如何處理Excel文檔並參考工作表(例如Sheet1,Sheet2),而無需在歐洲主要語言中翻譯此術語。
有人知道Excel是否提供了一個常量列表,她可以使用它訪問不同的信息片段,而不管Windows/Excel的本地化版本如何?
謝謝。
您不應該使用工作表的硬編碼名稱在VBA中引用它們。
Dim s As Worksheet
For Each s In ActiveWorkbook.Sheets
DoSomethingWith s
Next s
或
Set s = ActiveSheet
DoSomethingWith s
或
Set s = ActiveWorkbook.Sheets.Add()
DoSomethingWith s
或
Dim i As Long
With ActiveWorkbook.Sheets
For i = 1 To .Count
DoSomethingWith .Item(i)
Next i
End With
在單元格引用然而,使用實際表名稱是不可避免的。這些引用可以由VBA按需構建。 Excel中的現有引用(在單元格函數中)會自動保持最新。
在VBA編輯器中,您可以重命名工作表對象;這完全與顯示在屏幕底部標籤上的工作表名稱分開。
我通常將其重命名像wksData和wksSummary,並使用類似的代碼
wksSummary.Range("A1").Value = "abc"
用戶可以重命名工作表按照自己的意願,但VBA參考保持不變。
工作表的名稱可以被檢索,如下面的例子:
MsgBox wksSummary.Name
我相信你可以通過索引,而不是按名稱引用表。 – 2009-09-08 11:53:31
@Cory - 糾正我,如果我錯了,但不是表格的索引更改基於顯示順序是哪裏? – warren 2009-09-08 11:58:40
是的,它會的,所以這可能不適合你,但至少你不必擔心語言。 – 2009-09-08 11:59:40