根据特定值更新表中的值

问题描述

我想做的是使用循环,匹配和偏移量来构建复制和粘贴宏。

基本上在“更新”表中。

我有一个表,用户可以在其中更新值

DB::transaction(function () use($user) { $user->delete(); });

我需要此宏执行以下操作。

  1. 搜索Sheet2(Table1 [PrimaryKey])并根据单元格A2值进行匹配
  2. 在工作表1中的C2中复制值(例如ABCD)
  3. Lx中的Paste.Value(其中x =在步骤1中找到的行ID)
  4. 在工作表1中复制CD中的值(例如1234)
  5. Ox中的Paste.Value(其中x =在步骤1中找到的行ID)
  6. 将今天粘贴在Wx中
  7. 对列E = 1的所有单元格进行循环

这是我找到的代码,但是我可以弄清楚循环和匹配组件

    A           B       C              D              E
1   PrimaryKey  Line    New Value 1    New Value 2    UpdateValue
2   XY.1        1       ABCD           1234           1
3   XY.2        2       ZXCV           9876           1
4                   

希望这很清楚。

欢呼

解决方法

我不确定我是否理解您的问题,但是我尝试重建您的表。因此,我将第一张工作表命名为“ Sheet1”,将问题中的表格复制到A1-E3中,将第二张工作表命名为“ Sheet2”,并在A1-A2中分别写入“ XY.1”和“ XY.2”。

也许以下宏会为您提供帮助。它接受表中写入的值(在“ Sheet1”上),转到“ Sheet2”,在第一列中搜索一个值,然后将其他内容写入L,O和W列。但是我不知道该怎么做与表格B列中的值!?

Sub NameYourMacro()

Dim i As Integer
Dim strTheRow As String
Dim strNewValue1 As String
Dim strNewValue2 As String
Dim rngFoundCell As Range

i = 2 'First row on Sheet1 with values is row 2
While Cells(i,1).Value <> "" 'while there is a value in column A
    
    If Cells(i,5).Value = 1 Then 'if value in column E is 1 then to things
    
        'Read Values:
        strTheRow = Cells(i,1).Value
        strNewValue1 = Cells(i,3).Value
        strNewValue2 = Cells(i,4).Value
    
        'go to Sheet2 and search in the first column
        Sheets("Sheet2").Activate
        Set rngFoundCell = Columns(1).Find(strTheRow,xlValues,xlWhole)
        If Not rngFoundCell Is Nothing Then 'if vba found the value in column 1
            Sheets("Sheet2").Range("L" & rngFoundCell.Row).Value = strNewValue1
            Sheets("Sheet2").Range("O" & rngFoundCell.Row).Value = strNewValue2
            Sheets("Sheet2").Range("W" & rngFoundCell.Row).Value = Date
        Else
            'if rngFoundCell is nothing (value not found) do nothing
        End If
    Else
        'if value in column E is not 1 do nothing
    End If

    'go back to Sheet1 and next row...
    Sheets("Sheet1").Activate
    i = i + 1
Wend

End Sub

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...