在VBA插入的公式中使用一个variables

解决方法感谢Chrismas007使用公式中的“CHR(34)”。

我有这个代码插入一个公式,读取相邻的单元格值,并决定要放在单元格中。 例如,如果单元格的跟踪号码以“93”开头,那么我们知道这是一个“dhlglobalmail”包。

但是,如果将来有所改变,我需要用户可以轻易改变这些值,所以我在单元格区域的“设置”工作表中具有这些值。

我试图为一个运营商声明一个variables,作为名为“dhlcarriervalue”的testing,该testing被分配给包含文本“dhlglobalmail”的另一个表单元格的范围。 当我尝试将该子variables放入公式中时,它将不起作用。 我只是得到错误。 我试图把“&”放在它周围,双引号,单引号,它不会工作。 我知道你需要使用VBA公式中的string的双引号,但这是一个variables而不是string。 我试图删除它们,它不会工作。 你可以看到其他数字的工作,这只是string,但是当我尝试使用一个variables,它不起作用。 这不可能吗? 我知道这个variables是正确的,因为我可以“msgbox”它,它在那里。

Dim LastRowNum As Long Dim dhlcarriervalue As String dhlcarriervalue = ThisWorkbook.Sheets("Settings").Range("B41") With Range("R2:" & "R" & LastRowNum) .Value = "=IF(LEFT(s2,2)=""92"",""ups"",IF(LEFT(s2,2)=""93"","dhlcarriervalue",IF(LEFT(s2,2)=""94"",""usps"",IF(LEFT(s2,2)=""1Z"",""ups"",""Check Tracking""))))" .Select .Copy .PasteSpecial xlPasteValues End With ' I tried "" & dhlcarrier value & "" which didn't work either. 

我在你的代码中做了一些注释:

 Dim LastRowNum As Long '<Where is this defined??? Dim dhlcarriervalue As String dhlcarriervalue = ThisWorkbook.Sheets("Settings").Range("B41").Value '.Value is default, but you should specify With Sheets("NAME OF SHEET").Range("R2:" & "R" & LastRowNum) 'what Sheet specifically? .Formula = "=IF(LEFT(s2,2)=""92"",""ups"",IF(LEFT(s2,2)=""93""," & Chr(34) & dhlcarriervalue & Chr(34) & ",IF(LEFT(s2,2)=""94"",""usps"",IF(LEFT(s2,2)=""1Z"",""ups"",""Check Tracking""))))" '.Select 'Not needed since you specify the cell for .Copy .Copy .PasteSpecial xlPasteValues End With