[英]Excel VBA insert formula
我正在嘗試使用vba使用像這樣的動態列引用在單元格中插入公式:
Fred = ConvertToLetter(ActiveCell.Column)
Bob = "=DATE(LEFT(" + Fred + "2,4),MID(" + Fred + "2,5,2),MID(" + Fred + "2,7,2))"
ActiveCell.FormulaR1C1 = Bob
Function ConvertToLetter(iCol As Integer) As String
Dim iAlpha As Integer
Dim iRemainder As Integer
iAlpha = Int(iCol / 27)
iRemainder = iCol - (iAlpha * 26)
If iAlpha > 0 Then
ConvertToLetter = Chr(iAlpha + 64)
End If
If iRemainder > 0 Then
ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
End If
End Function
但是在運行時,該公式以單元格周圍的單引號結尾,並且該公式無法像下面這樣工作:
=DATE(LEFT('AY2',4),MID('AY2',5,2),MID('AY2',7,2))
如何停止添加單引號以使公式正常工作?
謝謝
這是導致問題的FormulaR1C1
屬性。
改為這樣做:
ActiveCell.Formula = Bob
順便說一句,您可以使用以下方法來代替ConvertToLetter()函數:
Fred = Split(ActiveCell.Address, "$")(1)
您可以改為使用此''(兩個單撇號)。
要使用R1C1公式,請使用:
ActiveCell.FormulaR1C1 = "=DATE(LEFT(R2C,4),MID(R2C,5,2),MID(R2C,7,2))"
公式中的R2表示第2行。公式中的C表示公式所在的列。
查看R1C1表示法:
R [-1]表示此行減1。
C [1]表示此列加1。
R1表示第1行
C1表示第1列
R表示此行。
C表示此列。
因此,在單元格B2中-R1C1表示單元格A1。
R1C [-1]表示單元格A1
RC1表示單元格A2。
RC表示單元格B2。
希望很清楚。 :)
或者您可以像Excel Hero所說的那樣使用ActiveCell.Formula = Bob。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.