具有动态柱的Vlookup的VBA回路

具有动态柱的Vlookup的VBA回路,vba,excel,Vba,Excel,对于一个小项目,我想使用vlookup或VBA中的匹配从另一个工作表中导出数据。我发现这是一项艰巨的任务,即使在谷歌的帮助下,我也找不到解决方案 我将项目分为三个阶段: 第一阶段是在VBA中创建一个工作的Vlookup(无法使其工作) 搜索需要执行的范围(动态)(我想我已经管理好了) 循环遍历表中的所有单元格(完全停留在“For each”语句上) 我设法获取了动态范围#Firstcell和#Lastcell 但我真的被困在环路和vlookup。 我想以这样的方式创建vlookup:对于每个

对于一个小项目,我想使用vlookup或VBA中的匹配从另一个工作表中导出数据。我发现这是一项艰巨的任务,即使在谷歌的帮助下,我也找不到解决方案

我将项目分为三个阶段:

  • 第一阶段是在VBA中创建一个工作的Vlookup(无法使其工作)
  • 搜索需要执行的范围(动态)(我想我已经管理好了)
  • 循环遍历表中的所有单元格(完全停留在“For each”语句上)
我设法获取了动态范围#Firstcell和#Lastcell

但我真的被困在环路和vlookup。 我想以这样的方式创建vlookup:对于每个单元格,X将是A&rownumber,Y将是Columnletter&“4”。 vlookup需要在Firstcell和Lastcell之间执行

Sub Match_Values()
' Variables

Dim X As Integer
Dim Y As Integer
Dim Firstcell As Integer
Dim Lastcell As Integer

' Range determination
    With ActiveSheet
        Range("A3").Select
        Selection.End(xlToRight).Select
        Firstcell = ActiveCell.Offset(1, 1).Range("A1").Select
    End With

    With ActiveSheet
        Lastcell = ActiveCell.SpecialCells(xlLastCell).Select
    End With

' For each cell create a vlookup with on rowindex en on y the columnindex loop statement


' Vlookup
With WorksheetFunction
    c04 = .VLookup(X, [Pivot!A4:CC99], .Match(Y, [Sheet1!A4:CC4], 0), False)
End With
MsgBox c04

End Sub
提前感谢,如果我需要提供额外的反馈,请让我知道

编辑,谢谢你的反馈 我上传了示例文件: (很抱歉,我没有看到如何在stackoverflow中披露)

图1

图2

我找到了一种让我的脚本工作的方法

我同意佩赫的观点,我应该更多地研究VBA,但它是有效的。 也许这对那些尝试类似的东西的人来说是有用的,它能让问题得到解答

谢谢你的支持

Private Sub Match_Values()
' Variables
Dim Firstcell As String
Dim Lastcell As String
Dim sht As Worksheet

' Range determination
    With ActiveSheet
        Range("A3").Select
        Selection.End(xlToRight).Select
        ActiveCell.Offset(1, 1).Range("A1").Select
        Firstcell = ActiveCell.Address
    End With

    With ActiveSheet
        ActiveCell.SpecialCells(xlLastCell).Select
        Lastcell = ActiveCell.Address
    End With

Dim rng As Range: Set rng = Application.Range("Overview!" & Firstcell & ":" & Lastcell)
Dim cel As Range
For Each cel In rng.Cells

    cel.FormulaR1C1 = _
        "=IFERROR(VLOOKUP(RC1,Pivot!R4C1:R100C50,MATCH(Overview!R2C,Pivot!R4C1:R4C50,0),FALSE),""Error"")"
Next cel

End Sub

你好

我找到了一种让我的脚本工作的方法

我同意佩赫的观点,我应该更多地研究VBA,但它是有效的。 也许这对那些尝试类似的东西的人来说是有用的,它能让问题得到解答

谢谢你的支持

Private Sub Match_Values()
' Variables
Dim Firstcell As String
Dim Lastcell As String
Dim sht As Worksheet

' Range determination
    With ActiveSheet
        Range("A3").Select
        Selection.End(xlToRight).Select
        ActiveCell.Offset(1, 1).Range("A1").Select
        Firstcell = ActiveCell.Address
    End With

    With ActiveSheet
        ActiveCell.SpecialCells(xlLastCell).Select
        Lastcell = ActiveCell.Address
    End With

Dim rng As Range: Set rng = Application.Range("Overview!" & Firstcell & ":" & Lastcell)
Dim cel As Range
For Each cel In rng.Cells

    cel.FormulaR1C1 = _
        "=IFERROR(VLOOKUP(RC1,Pivot!R4C1:R100C50,MATCH(Overview!R2C,Pivot!R4C1:R4C50,0),FALSE),""Error"")"
Next cel

End Sub

你好

什么是“vloop”——是“loop”的拼写错误还是“vlookup”的拼写错误?细节很重要,退后一步。发布一个数据示例,并解释您想要实现的目标。你们都设定了一个特定的公式来实现你们的目标。也许这个公式是错误的。也许这可以在没有VBA的情况下完成。也许你在问一个问题。只是一个旁注:如果你在
范围
等之前没有将前2个
With
语句与前导
一起使用,那么它们就不起作用。你应该避免使用
。选择
。也。另外
Firstcell=ActiveCell.Offset(1,1).Range(“A1”)。选择将不起作用。您希望第一个单元格是什么?牢房?行数?列号?值?@teylyn i包括文件和打印屏幕。佩赫:我希望电池是“X5”之类的。我只能看到它移动到正确的单元格。所以我猜它成功了。@Dubblej不,它没有成功。此行只选择单元格A1,但不将位置或类似内容保存到变量
Firstcell
中。“vloop”是什么?是“loop”的拼写错误还是“vlookup”的拼写错误?细节很重要,退后一步。发布一个数据示例,并解释您想要实现的目标。你们都设定了一个特定的公式来实现你们的目标。也许这个公式是错误的。也许这可以在没有VBA的情况下完成。也许你在问一个问题。只是一个旁注:如果你在
范围
等之前没有将前2个
With
语句与前导
一起使用,那么它们就不起作用。你应该避免使用
。选择
。也。另外
Firstcell=ActiveCell.Offset(1,1).Range(“A1”)。选择将不起作用。您希望第一个单元格是什么?牢房?行数?列号?值?@teylyn i包括文件和打印屏幕。佩赫:我希望电池是“X5”之类的。我只能看到它移动到正确的单元格。所以我猜它成功了。@Dubblej不,它没有成功。此行只选择单元格A1,但不将位置或类似内容保存到变量
Firstcell
中。