在Excel VBA中将公式添加到多列中的非连续单元格

我有一个预测数据的电子表格,我需要不断更新预测单元格。 这样做手动需要几个小时(这是几百个单元格)。 我试图写一个macros在每个单元格中写入一个公式,我坚持语法。 这是我的原型。

问题:如何在“预测”选项卡中正确循环单元格?

Sub forecastBuild() Dim rng As Range, i As Range, colCount As Integer, col As Integer colCount = 14 Set rng = Range("D6, H6, L6, P6, U6, Y6, AC6, AH6, AL6, AQ6, AU6, AY6") For Each i In rng For col = 3 To colCount i.Formula = "=Forecast!$" & columns(, col) & "$7" Next col Next i End Sub 

rng是我的输出范围(现在要写公式),我从Forecast!C7:Forecast!N7获取数据。 我不相信columns(, col)语法是正确的,而VBA不是将整数转换为string。 谢谢。

我想这是你想要的:

 Sub forecastBuild() Dim rng As Range, i As Range, colCount As Integer, col As Integer Dim ws As Worksheet Set ws = ActiveSheet Set rng = ws.Range("D6, H6, L6, P6, U6, Y6, AC6, AH6, AL6, AQ6, AU6, AY6") colCount = 3 For Each i In rng i.Formula = "=" & Sheets("Forecast").Cells(7, colCount).Address(0, 0, xlA1, True) colCount = colCount + 1 Next i End Sub 

我不太确定,如果我理解正确。 但是,也许你正在寻找这样的东西:

 Option Explicit Sub forecastBuild() Dim rng As Range, i As Range, colCount As Integer Set rng = ThisWorkbook.Worksheets("Sheet1").Range("D6, H6, L6, P6, U6, Y6, AC6, AH6, AL6, AQ6, AU6, AY6") For Each i In rng i.Formula = "=Forecast!" & Cells(7, 3 + colCount).Address colCount = colCount + 1 Next i End Sub