Loops 优化循环,哪种循环或条件语句最合适
我正在读取大xml文件(600mb),并用excel文件检查值。在这里,我使用了几个循环,执行这些循环需要时间。我想在条件语句中替换一些循环 因此: 此函数将工作表名称作为字符串,并尝试查找工作表(对于所有xml节点) 如果我使用select case并像下面那样传递图纸编号而不是图纸名称,会怎么样Loops 优化循环,哪种循环或条件语句最合适,loops,vbscript,conditional-statements,Loops,Vbscript,Conditional Statements,我正在读取大xml文件(600mb),并用excel文件检查值。在这里,我使用了几个循环,执行这些循环需要时间。我想在条件语句中替换一些循环 因此: 此函数将工作表名称作为字符串,并尝试查找工作表(对于所有xml节点) 如果我使用select case并像下面那样传递图纸编号而不是图纸名称,会怎么样 sub getSheetNumber( worksheet) select case worksheet case "A" getSheetNumber = 1
sub getSheetNumber( worksheet)
select case worksheet
case "A"
getSheetNumber = 1
case "B"
getSheetNumber = 2
case "C"
getSheetNumber = 3
case "D"
getSheetNumber = 4
case "E"
getSheetNumber = 5
case "F"
getSheetNumber = 6
case else
getSheetNumber = worksheet
这是个好主意还是有其他方法可以避免循环可以计算字母到数字的映射:
>> For Each c In Split("A B C D E F")
>> WScript.Echo c, Asc(c) - Asc("A") + 1
>> Next
>>
A 1
B 2
C 3
D 4
E 5
F 6
可以计算字母到数字的映射:
>> For Each c In Split("A B C D E F")
>> WScript.Echo c, Asc(c) - Asc("A") + 1
>> Next
>>
A 1
B 2
C 3
D 4
E 5
F 6
可以计算字母到数字的映射:
>> For Each c In Split("A B C D E F")
>> WScript.Echo c, Asc(c) - Asc("A") + 1
>> Next
>>
A 1
B 2
C 3
D 4
E 5
F 6
可以计算字母到数字的映射:
>> For Each c In Split("A B C D E F")
>> WScript.Echo c, Asc(c) - Asc("A") + 1
>> Next
>>
A 1
B 2
C 3
D 4
E 5
F 6
除了计算值之外,另一种选择是使用字典:
Set getSheetNumber = CreateObject("Scripting.Dictionary")
getSheetNumber.Add "A", 1
getSheetNumber.Add "B", 2
getSheetNumber.Add "C", 3
getSheetNumber.Add "D", 4
getSheetNumber.Add "E", 5
getSheetNumber.Add "F", 6
...
WScript.Echo getSheetNumber(worksheet)
当您想要实现简单的键值映射时,使用
Select..Case
是过分的。除了计算值之外,另一个选项是使用字典:
Set getSheetNumber = CreateObject("Scripting.Dictionary")
getSheetNumber.Add "A", 1
getSheetNumber.Add "B", 2
getSheetNumber.Add "C", 3
getSheetNumber.Add "D", 4
getSheetNumber.Add "E", 5
getSheetNumber.Add "F", 6
...
WScript.Echo getSheetNumber(worksheet)
当您想要实现简单的键值映射时,使用
Select..Case
是过分的。除了计算值之外,另一个选项是使用字典:
Set getSheetNumber = CreateObject("Scripting.Dictionary")
getSheetNumber.Add "A", 1
getSheetNumber.Add "B", 2
getSheetNumber.Add "C", 3
getSheetNumber.Add "D", 4
getSheetNumber.Add "E", 5
getSheetNumber.Add "F", 6
...
WScript.Echo getSheetNumber(worksheet)
当您想要实现简单的键值映射时,使用
Select..Case
是过分的。除了计算值之外,另一个选项是使用字典:
Set getSheetNumber = CreateObject("Scripting.Dictionary")
getSheetNumber.Add "A", 1
getSheetNumber.Add "B", 2
getSheetNumber.Add "C", 3
getSheetNumber.Add "D", 4
getSheetNumber.Add "E", 5
getSheetNumber.Add "F", 6
...
WScript.Echo getSheetNumber(worksheet)
当您想要实现一个简单的键值映射时,使用
Select..Case
是过分的。假设这是您的需求:
此函数将工作表名称作为字符串,并尝试查找
工作表(适用于所有xml节点)
为什么不使用Excel本身来查找工作表
function searchValue(val, rng, worksheet)
set objWorksheet = nothing
On error resume next
Set objWorksheet = objWorkbook.Worksheets(worksheet)
On error goto 0
If objWorksheet Is Nothing then
' Error! worksheet not found
End if
<..>
函数搜索值(val、rng、工作表)
设置objWorksheet=nothing
出错时继续下一步
设置OBJWORKEY=OBJWORKEY.工作表(工作表)
错误转到0
如果objWorksheet什么都不是,那么
“错!找不到工作表
如果结束
假设这是您的要求:
此函数将工作表名称作为字符串,并尝试查找
工作表(适用于所有xml节点)
为什么不使用Excel本身来查找工作表
function searchValue(val, rng, worksheet)
set objWorksheet = nothing
On error resume next
Set objWorksheet = objWorkbook.Worksheets(worksheet)
On error goto 0
If objWorksheet Is Nothing then
' Error! worksheet not found
End if
<..>
函数搜索值(val、rng、工作表)
设置objWorksheet=nothing
出错时继续下一步
设置OBJWORKEY=OBJWORKEY.工作表(工作表)
错误转到0
如果objWorksheet什么都不是,那么
“错!找不到工作表
如果结束
假设这是您的要求:
此函数将工作表名称作为字符串,并尝试查找
工作表(适用于所有xml节点)
为什么不使用Excel本身来查找工作表
function searchValue(val, rng, worksheet)
set objWorksheet = nothing
On error resume next
Set objWorksheet = objWorkbook.Worksheets(worksheet)
On error goto 0
If objWorksheet Is Nothing then
' Error! worksheet not found
End if
<..>
函数搜索值(val、rng、工作表)
设置objWorksheet=nothing
出错时继续下一步
设置OBJWORKEY=OBJWORKEY.工作表(工作表)
错误转到0
如果objWorksheet什么都不是,那么
“错!找不到工作表
如果结束
假设这是您的要求:
此函数将工作表名称作为字符串,并尝试查找
工作表(适用于所有xml节点)
为什么不使用Excel本身来查找工作表
function searchValue(val, rng, worksheet)
set objWorksheet = nothing
On error resume next
Set objWorksheet = objWorkbook.Worksheets(worksheet)
On error goto 0
If objWorksheet Is Nothing then
' Error! worksheet not found
End if
<..>
函数搜索值(val、rng、工作表)
设置objWorksheet=nothing
出错时继续下一步
设置OBJWORKEY=OBJWORKEY.工作表(工作表)
错误转到0
如果objWorksheet什么都不是,那么
“错!找不到工作表
如果结束