【问题标题】:VBA - Pulling a value on the same row based on another columnVBA - 根据另一列在同一行上提取一个值
【发布时间】:2019-03-12 10:23:46
【问题描述】:

我需要一个宏,它会向下滚动 B 列,直到它的值通过 6。然后,在传递的第一个值上,从 A 列获取该行上的值(我将此值称为 X)然后转到同一本书中的另一张纸,并在 C 列大于或等于 X 之后插入 3 行。我对 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 但是,这并不是我所需要的。我感谢提供的任何帮助。祝你有美好的一天!

【问题讨论】:

  • 我不太确定我是否理解正确。首先,您需要滚动 B 列(从第 1 行到末尾?),当您发现一个值为 6 或更大时,然后将该值复制到它的左侧(A 列)并将该值插入到另一张表中C + 3 = F?在 C 列中的值大于或等于 X 值的第一行(来自 sheet1 列 A)?
  • 对不起,我尽力解释了。但是,你说的很接近。找到 A 列中的值后,我需要获取该值 (X),转到另一个工作表,并在第二个工作表上 b 列中的值超过值 (X) 之后插入 3 个空白行。

标签: vba excel


【解决方案1】:

如果我的问题正确,应该这样做。如果工作表中还有非数字值,这将失败。

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

【讨论】:

  • 不客气。如果您将此问题标记为已回答,我将不胜感激,以便问题或多或少“关闭”。
  • 抱歉,这是我第一次真正与社区互动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
  • 2023-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多