Excel VBA - 在宏中使用=lookup函数

4
我正在使用此公式从另一个工作表中获取信息。我想用宏来完成这个任务。
=LOOKUP(Sheet1!F2,{"FL01","FL12","FL21","FL31","FL34"},{"ORLANDO PICKLIST","TAMPA PICKLIST","JAX PICKLIST","NAPLES PICKLIST","MIAMI PICKLIST"})

同时答案需要放在sheet2的B2单元格中央,字体大小为24。

谢谢


6
你可以录制一个宏并输入你的公式,然后停止宏录制。这样你就会得到你的答案。 - Pierre44
2
ThisWorkbook.Sheets("Sheet2").Range("B2").Formula = "=LOOKUP(Sheet1!F2,{" & """" & "FL01" & """" & ",FL12" & """ ",FL21" & """" & ",FL31" & """" & ",FL34" & """" & "},{" & """" & "ORLANDO PICKLIST" & """" & ",TAMPA PICKLIST" & """" & ",JAX PICKLIST" & """" & ",NAPLES PICKLIST" & """" & ",MIAMI PICKLIST" & """" & "})" - Rahul Chawla
1个回答

5

通过录制,您将得到类似以下的内容:

enter image description here

以上就是您可以得到的内容。

Option Explicit

Sub Macro3()
'
' Macro3 Macro
'

'
    Selection.FormulaArray = _
        "=LOOKUP(Sheet1!RC[4],{""FL01"";""FL12"";""FL21"";""FL31"";""FL34""},{""ORLANDO PICKLIST"";""TAMPA PICKLIST"";""JAX PICKLIST"";""NAPLES PICKLIST"";""MIAMI PICKLIST""})"
    With Selection.Font
        .Name = "Calibri"
        .Size = 24
    End With
    With Selection
        .HorizontalAlignment = xlGeneral
    End With
End Sub

当我开始录制时所选择的单元格为 ("B2")。您可以随意尝试这段代码。您会对Excel如何将公式和格式选项“转换”成代码有所了解。

通过编辑选择部分(Selection.),我们可以更明确地指定要将新代码应用于哪个工作表和哪个范围...

Sub Macro3_Changes()
'
' Macro3 Macro
'

'
    Worksheets("Sheet2").Range("B2").FormulaArray = _
        "=LOOKUP(Sheet1!RC[4],{""FL01"";""FL12"";""FL21"";""FL31"";""FL34""},{""ORLANDO PICKLIST"";""TAMPA PICKLIST"";""JAX PICKLIST"";""NAPLES PICKLIST"";""MIAMI PICKLIST""})"
    With Selection.Font
        .Name = "Calibri"
        .Size = 24
    End With
    With Selection
        .HorizontalAlignment = xlGeneral
    End With
End Sub

这里有一些有趣的提示,我假设你有一个数组公式。我使用 Ctrl + Shift + Enter 输入了你的公式。宏也记录了这个并将其翻译为 FormulaArray。如果我只是输入公式,那么它将会是相对于你选择的区域的相对公式,称为 FormulaR1C1


3
宏录制器是学习开始编写VBA代码的好方法。额外加1分,因为它会生成可行但质量很差的代码,需要进行调整以使其变得更好。 - FreeMan
1
这里有一个很好的SO线程,讲述如何避免使用.Select/.Activate - BruceWayne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接