簡體   English   中英

Excel VBA插入公式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM