簡體   English   中英

VBA 將字符串的文字值放入 excel 單元格中

[英]VBA put literal value of string into an excel cell

Excel 2010 有沒有辦法將字符串變量的文字內容放入 excel 單元格中?

我可以用這段硬代碼實現我想做的事情,但這段代碼深藏在嵌套的子例程中。 我想對此進行軟編碼,以便將 Formula_wanted 的內容插入到單元格中。 下面是將公式放入單元格的代碼。

   If modifier1 = "ILMROS " Then
          Range("M4").Select
          ActiveCell.FormulaR1C1 = "Sales Total"
          Range("M5").Select
          ActiveCell.FormulaR1C1 = "=[@701]+[@707]+[@708]+[@709]+[@712]"

問題在於類別一直在變化。 它們是從輸入表上的 1 個表中讀取的。 如果我能做到在類別更改時只需要更改此輸入表,那么就沒有人需要深入研究代碼來查找由此產生的問題。

我可以獲得 VBA 在變量中創建我想要的字符串,但是,嘗試下面的所有操作,我無法將變量中的字符串放入單元格“M5”。 根據操作系統的規則,我已經包含了我嘗試過的所有內容以及收到的錯誤。 感謝您提供的任何幫助。

   Dim Formula_wanted as string (also tried Dim as Variant, same results)

    Formula_wanted = "=[@"
              For x = 1 To UBound(ILMROS) - 1
                  Formula_wanted = Formula_wanted & ILMROS(x) & "]+[@"
              Next x
      Formula_wanted = Formula_wanted & ILMROS(UBound(ILMROS)) & "]"

  MsgBox "my formula is:  " & Formula_wanted

   'shows this in msgbox: my formula is: = "=[@701]+[@707]+[@708]+[@709]+[@712]"

   '@@@@@@@@@@@@@@@@@@@@@@

   These all failed:
  Range("Y5").Text = Formula_wanted
     ' error 424
  Range("Y5").Value = Formula_wanted
       error 1004
  Range("y5").Formula = Formula_wanted
      'error 1004
  Range("Y5").FormulaR1C1 = Formula_wanted
      error 1004
  Cells(4, 24).Select
     error 424
  ActiveCell.Text = Formula_wanted
    'error 424

  Set Ob = Range("Y5") ' Ob dim as "object"
    Ob.Value = Formula_wanted
      '1004
 Ob.Text = Formula_wanted
      '1004
  Cells(4, 24).Text = Formula_wanted
      '1004

  ActiveCell.Text = Formula_wanted
         '1004    
  Range("Y5").FormulaLocal = Formula_wanted
      'error 1004

  End Sub

目前尚不清楚您的公式試圖做什么,但我沒有足夠的聲譽來發表評論。 通過將公式設置為“=[@701]+[@707]+[@708]+[@709]+[@712]”,看起來您正在嘗試從名為 701、707 等的表列中添加值。

如果這是你正在做的,那么要么:

a) 您引用了表中不存在的列; 或 b) “Y5”不在表中。

如果是 a),則更正列名。 如果是 b) 則將您的公式更改為

"=表 1[@701]+表 1[@707]+表 1[@708]+表 1[@709]+表 1[@712]"

如果您正在嘗試執行其他操作(例如引用表中的特定行),那么您可能需要完全重新考慮並考慮使用 ListObject。 我發現此鏈接過去非常有用。

列表 Object 有幫助的參考

為了進一步澄清,您的字符串變量中的公式值似乎無效。

帶有有效字符串變量的示例

Dim validFormulaString As String
validFormulaString = "=1+2"
Range("A1").Formula = validFormulaString

String 變量的示例不起作用,因為結果公式無效

Dim invalidFormulaString As String
invalidFormulaString = "=1$2"
Range("A1").Formula = invalidFormulaString

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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