如果名称与工作表1中的工作表2不匹配,请将工作表名称添加到工作表2

时间:2011-11-03 19:01:34

标签: excel excel-vba copy match vba

我有两张纸,一张名为bill,另一张名为sheet1。

我有VBA代码来查找名称并将信息粘贴到匹配的名称,但如何添加不存在的新名称?

然后,如果找不到名称,请将名称添加到帐单列F行192和列F行193。

示例:

票据

A           B      C    D     E  F      G    H

xxx        xxxx   xxx  xxx  xx  bill    xxx      
xxx        xxxx   xxx  xxx  xx  bill    xxx 

xxx        xxxx   xxx  xxx  xx  man     xxx

xxx        xxxx   xxx  xxx  xx  man     xxx



sheet1

 A          B      

bill      19.23   
man       156.23      

这是我到目前为止所做的:

Dim sh1 As Worksheet, sh2 As Worksheet

Dim j As Long, i As Long, lastrow As Long

Set sh1 = Worksheets("test")

Set sh2 = Worksheets("Sheet1")

    lastrow1 = sh1.Cells(Rows.Count, "F").End(xlUp).Row
    lastrow2 = sh2.Cells(Rows.Count, "A").End(xlUp).Row

    For i = 2 To lastrow1
        For j = 1 To lastrow2
            If sh1.Cells(i, "F").Value = sh2.Cells(j, "A").Value Then
                sh1.Cells(i, "H").Value = sh2.Cells(j, "B").Value
            End If
        Next j
    Next i
End Sub

1 个答案:

答案 0 :(得分:0)

我知道你正在尝试使用宏而不是让这个声音过于简单,但你想到只是在数据输入表(票据)上命名所需的范围,然后在sheet1上你想要的那个要使用查找公式显示的数据?

例如:

<强> Bills.xls

A B C D E F G H

xxx xxxx xxx xxx xx bill xxx
xxx xxxx xxx xxx xx bill xxx

xxx xxxx xxx xxx xx man xxx

xxx xxxx xxx xxx xx man xxx

Sheet 1中

A B

法案19.23
男人156.23

....命名F1:F100&#34; NAMES&#34;

的范围

然后,在sheet1.xls上 在所需输出行的每个单元格中(只需复制/粘贴)并使用具有指定范围的数据验证///可以只是一个公式说明= if(&#39; NAMES&#39; $ F $ 1&lt;&gt;& #34;&#34;&#39; NAMES&#39; $ F $ 1,&#34;&#34)

......也就是说,如果我正确理解你的需求。