我有片材与缩写的名字,如“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 –
哪里有缩写名称映射到全名?这意味着你的例子肯定不是*现实世界*。 –
多数民众赞成,我没有。我不想要参考/指南表。如果可能的话,我需要在代码背后进行重新映射。谢谢 –
为什么你不想要一个映射表。只是一个隐藏的标签,有映射?否则,您可以每次将映射加载到字典或数组,然后使用它。其他方式您必须至少输入一次该映射。 –