工作表循环-如何检索工作表的名称并将其放入公式

时间:2018-09-19 22:04:15

标签: excel excel-vba

对于工作表中的每一列,我试图根据该列的标题(其中该列的第一行与该工作表具有相同的名称)从另一个工作表中获取信息。

这是我的代码:

Dim i As Integer
For i = 1 To 60
    wsmain.Cells(2, 11 + i).FormulaArray = "=IF(priceFlag, '[SP60-Sub-Index.xlsm]wsName'!F2, '[SP60-Sub-Index.xlsm]wsName'!E2)"

    strName = wsmain.Cells(2, 11 + i).Value
    With wsmain.Cells(2, 11 + i)
        .Replace "wsName", strName, xlPart
    End With
Next i

我已将strName定义为字符串,但是它不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这会在第2行中查找工作表名称,并将公式放入第3行。

无需替换,只需串联就可以。

FormulaArray将使公式成为您只需要公式的数组公式。

您使用的代码是为了避免FormulaArrays限制为255个字符。对于简单的公式来说并不需要。

Dim i As Long
For i = 1 To 60
    strName = wsmain.Cells(2, 11 + i).Value
    wsmain.Cells(3, 11 + i).Formula = "=IF(priceFlag, '[SP60-Sub-Index.xlsm]" & strName & "'!F2, '[SP60-Sub-Index.xlsm]" & strName & "'!E2)"    
Next i