对不起我的语言,不是原生语言。
所以这可能有问题。
有一张包含大约30张纸和数据的工作簿。我需要根据工作表的名称将数据转换为某种格式。我为每种格式创建了一个适用于所有选定工作表的marco。 我的想法是在检查工作表的名称和格式化数据时创建一个宏调用三个格式marcos中的一个。像
这样的东西If sheet.name = "111, 112, 113..." then 'if it fit the name do the format-1
call "Module_name_1"
Else if sheet.name = "222, 223, 224..." then 'if it fit the name do the format-2
call "Module_name_2"
Else sheet.name = "333, 334, 335..." then 'if it fit the name do the format-3
call "Module_name_3"
无论如何,谢谢你的时间=)
答案 0 :(得分:0)
检查所有工作表名称的前两个字符:
Sub SID()
Dim shn As String, sh As Worksheet
Dim shn2 As String
For Each sh In Sheets
shn = sh.Name
shn2 = Left(shn, 2)
If shn2 = "11" Then Call Module_name_1
If shn2 = "22" Then Call Module_name_2
If shn2 = "33" Then Call Module_name_3
Next sh
End Sub
答案 1 :(得分:0)
您可以使用select case语句检查名称。 比较时,此处的数字应转换为字符串。这样,您可以根据您的价值轻松分支。 如果您需要更改限制,请更改119,229和339。
Select Case sheet.name
Case 111 To 119
'if it falls into the region then do the format-1
call "Module_name_1"
Case 222 To 229
'if it fit the name do the format-2
call "Module_name_2"
Case 333 To 339
'if it fit the name do the format-3
call "Module_name_3"
End Select
答案 2 :(得分:0)
你甚至不需要打电话'但它看起来不错,而且可能更直观。如果你真的想简化一些事情,试试这样的事情。
选择Case sheet.name 案例111至119 Module_name_1 案例222至229 Module_name_2 案例333至339 Module_name_3 结束选择
答案 3 :(得分:-1)
如果工作表名称的第一个字符是决定因素,可能是
if [[ $choice = 1 || $ choice = 3 ]]; then
...
fi