gpt4 book ai didi

Excel VBA Vlookup 问题

转载 作者:行者123 更新时间:2023-12-04 22:09:14 28 4
gpt4 key购买 nike

我是 Excel VBA 的完整初学者。

以下是我编写的代码,它应该遍历工作表中的列,通过引用左侧的列值填充值并引用同一工作簿中的另一个工作表来查找正确的对应值应该是什么。

我用过 While循环,所以我可以应用这个 VLOOKUP列中每个单元格的宏(只有查找值会发生变化,这应该是表示左侧列的变量):

Dim result As String
Dim sheet As Worksheet
Dim rownum As Integer
Dim iterator As Integer
Dim lookup_value As String
Dim vlookupString1 As String

Set sheet = ActiveWorkbook.Sheets("datasheet")
rownum = sheet.Range("A1").End(xlDown).Row
Set iterator = 3

While iterator < rownum

lookup = "M" & iterator
vlookup1String = "=VLOOKUP(" & lookup & ",'GICS Sub-industry codes'!$A$2:$B$155,2,FALSE)"
With ActiveSheet.Cells
Range("N" & iterator).Select
Selection.Value = vlookup1String
End With
iterator = iterator + 1

End While

我在说“预期如果或选择或子...”时收到错误@end

1)我犯了语法错误吗?
2)我的方法是否正确。我观察到了这种设计 VLOOKUPS 的字符串方法。在 只在另一个地方。它似乎最适合。

最佳答案

修复您的代码
您应该使用 Wend不是 End While为您的循环。

更清洁的替代品
但是您可以一次填充整个范围,如下所示

  • 最好使用 End(xlup) 从底部“循环”一个范围而不是用 End(xlDown) 往下看(不依赖空格)
  • 您几乎不需要使用 Select在 VBA

  • 进一步说明
  • rng1设置工作范围从工作表数据表中 A 列中最后使用的单元格到 A3
  • rng1.Offset(0, Range("N1").Column - 1)表示将 rng1(即 A 列)偏移 13 列以使用 N 列(即偏移 A 乘 14-1)进行公式插入
  • 我使用宏记录器在第 N 列中获取了此部分所需的代码 "=VLOOKUP(RC[-1],'GICS Sub-industry codes'!R2C1:R155C2,2,FALSE)" .
  • R1C1说话,RC[-1]表示引用同一行中的单元格,但左侧一列。所以在 N3 ,公式将以 =VLOOKUP(M4..) 开头, 所以在 N30 , 公式将以 `=VLOOKUP(M30..) 等
  • 开头

    建议代码
    Sub QuickFill()
    Dim ws As Worksheet
    Dim rng1 As Range
    Set ws = Sheets("datasheet")
    Set rng1 = ws.Range(ws.[a3], ws.Cells(Rows.Count, "A").End(xlUp))
    rng1.Offset(0, Range("N1").Column - 1).FormulaR1C1 = "=VLOOKUP(RC[-1],'GICS Sub-industry codes'!R2C1:R155C2,2,FALSE)"
    End Sub

    关于Excel VBA Vlookup 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13010049/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com