使用excel vba将公式插入单元格

我试图按照这个例子 ,但它不工作。 offset是否会造成问题?

这是我有:

 Sub parse_dates_flurry() Dim col_diff As Integer ' how many columns away the unparsed date col_diff = -20 Dim num_of_char As Integer num_of_char = 10 Dim sheet_name_flurry As String sheet_name_flurry = "flurry_an_output.csv" ' get rows used in sheet Dim rows1 As Long rows1 = Get_Rows_Generic(sheet_name_flurry, 1) ' find last column and fill with formula Dim formula_parse As String formula_parse = "=LEFT(RC[col_dif],num_of_char)" ' Dim starting_cell_range As Range Dim n As Long With Worksheets(sheet_name_flurry) Set starting_cell_range = .Range(find_last_column(sheet_name_flurry)) starting_cell_range.Offset(0, 1) = "Parsed date" For n = 1 To (rows1 - 1) ' getting error here: starting_cell_range.Offset(n, 1).Formula = formula_parse Next n End With End Sub 

 formula_parse = "=LEFT(RC[col_dif],num_of_char)" 

应该是这样的:

 formula_parse = "=LEFT(RC[" & col_dif & "]," & num_of_char & ")" 

请记住, formula_parse是一个正确的stringforms。
但是为了连接一个variables的值,你需要像上面这样做。
而且,由于您正在以R1C1表示法传递公式,请更改以下行:

 starting_cell_range.Offset(n, 1).Formula = formula_parse 

对此:

 starting_cell_range.Offset(n, 1).FormulaR1C1 = formula_parse