VBA - 根据另一列在同一行上拉取值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA - 根据另一列在同一行上拉取值相关的知识,希望对你有一定的参考价值。

我需要一个宏,它将向下滚动列B,直到它的值超过6.然后,在第一个传递的值上从列A获取该行的值(我将此值称为X)然后转到另一个表中同一本书并在C列之后插入3行大于或等于X.我对vba很新,不知道我在做什么,但是,我正处于紧张状态,可以使用一些帮助。我不知道这是否会有所帮助,但我写了一些可能能够解释它的超伪代码。 (我不仅需要X,还需要Y在第二张纸上的另一个位置插入3行)

Survey.cell
    dls = Where(column("J") > 6.0 get.row)
    kop = Where(column("B") meets dls)

Survey.cell
    inc = Where(column("C") >85 get.row)
    lnd = Where(column("B") meets inc)

Journal.cell
    Where cloumn("M") >= kip insert.row & inerst.row & insert.row
    Where column("M") >= lnd insert.row & insert.row & insert.row

我能找到的最接近的是:How to find text in a column and saving the row number where it is first found - Excel VBA但是,这不是我需要的。我感谢任何提供的帮助。祝你有美好的一天!

答案

如果我的问题是对的,那就应该这样做。如果工作表中还存在非数字值,则会失败。

Sub DoIt()
    Dim i As Long
    Dim x As Double
    Dim Worksheet1 As Worksheet
    Dim Worksheet2 As Worksheet
    Dim ColumnA As Long
    Dim ColumnB As Long
    Dim ColumnC As Long

    Set Worksheet1 = ActiveWorkbook.Worksheets("Sheet1") ' Change name of sheet if necessary
    Set Worksheet2 = ActiveWorkbook.Worksheets("Sheet2") ' Change name of sheet if necessary
    ColumnA = 1  ' Change if you want other columns, 1 = A-column, 2 = B etc
    ColumnB = 2
    ColumnC = 3


    For i = 1 To Worksheet1.UsedRange.Rows.Count
        If Worksheet1.Cells(i, ColumnB).Value > 6 Then
            x = Worksheet1.Cells(i, ColumnA).Value
            Exit For
        End If
    Next

    If x = 0 Then MsgBox "No value greater then 6 found in colum b in sheet 1"

    For i = 1 To Worksheet2.UsedRange.Rows.Count
        If Worksheet2.Cells(i, ColumnC).Value >= x Then
            Worksheet2.Rows(i + 1).Insert
            Worksheet2.Rows(i + 1).Insert
            Worksheet2.Rows(i + 1).Insert
            Exit Sub
        End If
    Next

    MsgBox "No value greater then " & x & " found in column C in sheet 2"
End Sub

以上是关于VBA - 根据另一列在同一行上拉取值的主要内容,如果未能解决你的问题,请参考以下文章

Access VBA:根据非绑定列在组合框中查找项目

用于比较具有包含日期​​的单元格的列并将特定文本粘贴到另一列的 Vba 代码

sql中的2列在另一列之下

SQL select row where(这一列在另一列中有许多不同的值)

访问 VBA:连接动态列并循环执行

SQL Server 唯一的自动增量列在另一列的上下文中