?當(dāng)變量與字符串連接時(shí)候,一定在中間加連接符號(hào)&,否則會(huì)提示錯(cuò)誤。
如"=b2*c2" ,在x=2 to 6時(shí)候,cells(x,4)="=b"&x&"*c"&x? (實(shí)際運(yùn)行時(shí)提示錯(cuò)誤)
我自己寫的公式,經(jīng)檢驗(yàn)完全可用。
Sub bas1()
Dim x As Range
For Each x In Range("d2:d6")
x = x.Offset(0, -1) * x.Offset(0, -2)
Next x
End Sub
用VBA在單元格輸入帶引號(hào)的公式,遇到單引號(hào)就把單引號(hào)加倍。
sub t3()
range ("c9")="=SUMIF(A2:A6,""b"",b2:b6)"
end sub
利用VBA在單元格中輸入數(shù)組公式
sub t4()
range("c9").formulaArray= "=sum(B2:B6*C2:C6)"
end sub
利用單元格公式返回值
sub t5()
range("d13")=Evaluate("=SUMIF(A2:A6,""B"",B2:B6)")
range("d9")=Evaluate("=SUM(B2:B6*C2:C6)")
End sub
Evaluate 還可以返回?cái)?shù)組公式的值
我自己仿寫的,心得,若是利用單元格公式直接返回值,其實(shí)就是在引用單元格公式的基礎(chǔ)上,在單元格公式外穿一層衣服,Evaluate(),就可以了。
Sub bas3()
Range("d9") = Evaluate("=sum(d2:d6)")
End Sub
借用工作表函數(shù)
sub t6()
? range("d8")=Application. WorksheeFunction.Sum(Range("d2:d6"))
end sub
調(diào)用函數(shù)的參數(shù)設(shè)置問題,Sum(Range("d2:d6"))是VBA表示方法。
countif(range("a1:a10"),"b"),調(diào)用工作表函數(shù),一定要用VBA表示方法。
利用VBA函數(shù)
sub t7()
? range("c20")=VBA.Instr(range("a20"),"E")
end sub
想知道有哪些VBA的函數(shù),輸入VBA.系統(tǒng)就會(huì)彈出。關(guān)于這一步,要注意,如果忘記寫range在instr函數(shù)中,并不會(huì)報(bào)錯(cuò),但是結(jié)果會(huì)返回0,實(shí)際上結(jié)果是3.
編寫自定義函數(shù)(后續(xù)填坑)