Excel VBA插入公式

我试图插入一个公式使用vba使用dynamic列引用像这样的单元格:

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。

希望这是明确的。 🙂

或者你可以使用ActiveCell.Formula = Bob作为Excel英雄说。