我有许多报告,这些报告是我从中提取信息,然后放入新字段。我想知道是否有一种很好的方法来构成它,因此,根据报告类型的不同,变量被昏暗以引用我需要的单元格,但是loop柜台内置。这是我要寻找的快速模型:
sub demo()
dim i as long
dim a,b,c,d,e as range
for i = 1 to 100
if cells(i,1).value2 like "Financials-Q4" Then
set a = cells(i,21).value2
set b = cells(i,44).value2
set c = cells(i,65).value2
elseif cells(i,1).value2 like "Amor-Q4" Then
set a = cells(i,100).value2
set b = cells(i,97).value2
set c = cells(i,157).value2
set d = cells(i,89).value2
end if
next i
'Start using variables
for i = 1 to 100
If a = b Then
c = "Does not compute"
Else
c = "Does compute"
End if
next i
目前,我的代码基本上只是引用每个单独的单元格值,这在清理/更改周围非常耗时。
应该有效的东西:
Sub Demo()
Dim i As Long
Dim a As Range
Dim b As Range
Dim c As Range, d As Range, e As Range
For i = 1 To 100
If Cells(i, 1).Value2 = "Financials-Q4" Then
Set a = Cells(i, 24).Value2
Set b = Cells(i, 24).Value2
Set c = Cells(i, 24).Value2
ElseIf Cells(i, 1).Value2 = "Amor-Q4" Then
Set a = Cells(i, 100).Value2
Set b = Cells(i, 97).Value2
Set c = Cells(i, 157).Value2
Set d = Cells(i, 89).Value2
End If
Next
End Sub
假设您不需要Like
,而只是=
,因为您尚未使用过,并且*
或?
符号使用Like
。
这是Like
使用结果的一些示例(来源(:
?"Vito6" Like "V?to6"
True
?"Vito6" Like "Vito#"
True
?"Vito6" Like "V*6"
True
?"Vito6" Like "Vit[a-z]6"
True
?"Vito6" Like "Vit[A-Z]6"
False
?"Vito6" Like "Vit[!A-Z]6"
True
?"12 34" Like "## ##"
True
?"12 34" Like "1[0-9] [0-9]4"
True
关于Integer
而不是Long
的使用 - 为什么要使用整数而不是长?