Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA代码替换D列中的值(如果是c列中的单元格)_Excel_Vba - Fatal编程技术网

Excel VBA代码替换D列中的值(如果是c列中的单元格)

Excel VBA代码替换D列中的值(如果是c列中的单元格),excel,vba,Excel,Vba,我是VBA新手,我尝试创建一个子系统,该子系统将根据案例状态(打开)用另一个工作表中的新注释更新(使用vlookup,然后复制粘贴)注释。基本上,我试着用一个vlookup宏组合一个代码,在表的末尾插入新行。 主要问题是,我不知道如何指示excel确定他应该在哪个单元格中进行查找,然后复制和粘贴。如下面的示例所示,“M528”不会这样做,因为我希望保留已关闭的记录。我每天只收到打开的案例,因此我不希望代码在状态为“关闭”的单元格中执行任何VLOOKUP 没有太多的改变,你可以用它做你想做的大部分

我是VBA新手,我尝试创建一个子系统,该子系统将根据案例状态(打开)用另一个工作表中的新注释更新(使用vlookup,然后复制粘贴)注释。基本上,我试着用一个vlookup宏组合一个代码,在表的末尾插入新行。
主要问题是,我不知道如何指示excel确定他应该在哪个单元格中进行查找,然后复制和粘贴。如下面的示例所示,“M528”不会这样做,因为我希望保留已关闭的记录。我每天只收到打开的案例,因此我不希望代码在状态为“关闭”的单元格中执行任何VLOOKUP


没有太多的改变,你可以用它做你想做的大部分事情

Sub ChangesUpdates()

lastRow = Worksheets("CurrentDash").Range("A" & Rows.Count).End(xlUp).Row

For rw = 2 To lastRow
    If Worksheets("CurrentDash").Range("AS" & rw).Value = "Open" Then
        With Worksheets("CurrentDash").Range("M" & rw)
            .FormulaR1C1 = "=VLOOKUP([@[Parent Case Number]],NewData!C[-12]:C,13,0)"
            .Value = .Value ' effectively a paste-values
        End With
    End If
Next rw
       
End Sub
这里没有单元格选择/激活,因此屏幕不会移动到更新,但它应该循环通过与您的例程相同的设置


我脑子里还有一个问题,关于查找区域有多稳定,你应该考虑一下。

这里单元格
M528
的意义是什么?它是(例如)列
M
中的第一个空行吗?它是我开始录制宏时选择的单元格。第528行是许多状态为“打开”(列为)的行之一。就是今天。但是明天这一行可能会关闭,所以我不希望执行vlookup。请将代码更改为不使用
选择
。不要选择
selection
,而是像在if语句中那样使用直接单元格引用。好的,我认为注释会进入正在考虑的行的
M
列。非常感谢Joffan。你救了我一天。如果您觉得Joffan的答案是您问题的正确答案,请单击“接受”,以便其他具有相同问题的用户能够更轻松地找到它。
Sub ChangesUpdates()

lastRow = Worksheets("CurrentDash").Range("A" & Rows.Count).End(xlUp).Row

For rw = 2 To lastRow
    If Worksheets("CurrentDash").Range("AS" & rw).Value = "Open" Then
        With Worksheets("CurrentDash").Range("M" & rw)
            .FormulaR1C1 = "=VLOOKUP([@[Parent Case Number]],NewData!C[-12]:C,13,0)"
            .Value = .Value ' effectively a paste-values
        End With
    End If
Next rw
       
End Sub