我有片材與縮寫的名字,如「LOL」或ROFL」名稱基於縮略表名稱
我所需要的宏我要經過,並且根據在左集管將完整短語的小區
我知道如何做到這一點通常與activesheet.name,但我不知道如何寫出全名。我懷疑它會需要一個案例和循環
IE「LOL」 - >標題名稱將是「大聲笑」
「Rofl」 - >標題名稱將爲「滾動在地板上笑」
謝謝!
我有片材與縮寫的名字,如「LOL」或ROFL」名稱基於縮略表名稱
我所需要的宏我要經過,並且根據在左集管將完整短語的小區
我知道如何做到這一點通常與activesheet.name,但我不知道如何寫出全名。我懷疑它會需要一個案例和循環
IE「LOL」 - >標題名稱將是「大聲笑」
「Rofl」 - >標題名稱將爲「滾動在地板上笑」
謝謝!
這裏有一個想法如何,你可以通過案例Statments
Sub Example()
Dim WS As Worksheet
Dim OutputString As String
OutputString = ""
For Each WS In ThisWorkbook.Worksheets
Select Case WS.Name
Case "ROFL"
OutputString = "Rolling on floor laughing"
Case "LOL"
OutputString = "Laugh out loud"
End Select
'Do something
If OutputString <> "" Then
MsgBox "Output for desired name: " & OutputString
OutputString = ""
End If
Next WS
End Sub
是不是'If OutputString <>「」Then'條件反向?我想我會在'Case Else'塊中移動那部分;-) –
@ Mat'sMug我已經調整了我的答案。你是指這樣的事情嗎?我非常感謝這個提示,因爲我自己每天都在學習。 – Brad
哦,對不起 - 我完全誤讀了意圖!我認爲'Select Case'之後的條件塊用於處理未找到匹配的情況! :S –
使用VBA代碼表名稱映射使用字典。在某些語言中,它的另一個名稱恰好是Map
;它的意味着。
參考的Microsoft腳本運行時庫,並作出其唯一的責任是處理一個函數:
Private Function GetFullName(ByVal shortName As String) As String
Static values As Scripting.Dictionary
If values Is Nothing Then
Set values = New Scripting.Dictionary
values.Add "LOL", "Laugh out Loud"
values.Add "ROFL", "Rolling on the floor laughing"
'...
End If
If values.Exists(shortName) Then
GetFullName = values(shortName)
Else
'raise an error:
'Err.Raise 5, "GetFullName", "Key '" & shortName & "' was not found."
'...or otherwise handle the situation for a missing key.
End If
End Function
不足之處是,嗯,你是混合數據與代碼這裏。數據不代表屬於代碼。你可以有一個(隱藏的?)工作表來保存帶有映射數據的表格,並從該表格填充字典。這樣當映射需要改變時,你的代碼不會。
嗨,謝謝你的迴應。我不能使用地圖/工作表甚至隱藏的BC我打算分發這個給他人在他們的個人宏。這種方式可以在任何公開的文檔中使用,而無需額外的工作(對於那些對宏不瞭解的人),我試圖儘可能簡化這些人。再次感謝! –
你如何分發?作爲Excel加載項(.xlam)?Excel加載項*是一個工作簿,您可以很好地使用它的工作表來存儲數據。對不起,我沒有看到問題在這裏。 –
我的計劃是一個xlsb –
哪裏有縮寫名稱映射到全名?這意味着你的例子肯定不是*現實世界*。 –
多數民衆贊成,我沒有。我不想要參考/指南表。如果可能的話,我需要在代碼背後進行重新映射。謝謝 –
爲什麼你不想要一個映射表。只是一個隱藏的標籤,有映射?否則,您可以每次將映射加載到字典或數組,然後使用它。其他方式您必須至少輸入一次該映射。 –