所在位置:主页 > 数据处理 > vba Vlookup应用

vba Vlookup应用

发布时间:2024-01-01 13:39来源:www.sf1369.com作者:宇宇

一、vba Vlookup应用

1. VBA 调用前台函数使用worksheetfunction,比如worksheetfunction.vlookup(...)

2. 不同工作簿的话,必须使用定义的application来调用,也就是说,不同的工作簿必须使用不同的application;比如:工作簿2的application:workbook.Application.WorksheetFunction.VLookup(.....)

3. 注意参数对应workbook,比如工作簿2的range(A:A) 使用函数时候,也要使用该工作簿的application;

1. 例子:

        '=======打开远程表格(计划1)开始===============

        Set Excelapp = CreateObject(Excel.Application) '创建EXCEL对象

        Set ExcelBook = Excelapp.Workbooks.Open(y:\计划1.xls, ReadOnly:=True)

        Set ExcelSheet = ExcelBook.Worksheets(计划1)

        '=======打开远程表格(计划1)结束===============

set rng = ExcelSheet.range(A:A) '工作簿“计划1”中工作表“计划1”的 A 列范围

对该范围使用函数

Excelapp..WorksheetFunction.sum(rng) '对上面范围求和(注意前面的Excelapp)

2.  

3.

二、这个EXCEL用VBA怎么处理

公式最快:

在B2输入

=IF(ISERROR(VLOOKUP(A2,Sheet1!A$2:B$999,2,)),0,VLOOKUP(A2,Sheet1!A$2:B$999,2,))+IF(ISERROR(VLOOKUP(A2,Sheet2!A$2:B$999,2,)),0,VLOOKUP(A2,Sheet2!A$2:B$999,2,))

回车后再选中B2,鼠标移到其右下角,双击那个“+”,完成。

非要用VBA,代码如下:

Sub test()

Sheets(Sheet3).Select

Range(B2) = =IF(ISERROR(VLOOKUP(A2,Sheet1!A$2:B$999,2,)),0,VLOOKUP(A2,Sheet1!A$2:B$999,2,))+IF(ISERROR(VLOOKUP(A2,Sheet2!A$2:B$999,2,)),0,VLOOKUP(A2,Sheet2!A$2:B$999,2,))

Range(B2).Copy Range(B3:B & Range(A9999).End(xlUp).Row)

End Sub

三、如何用vba处理在excel成千上万个数据中筛选相同数字

你可以在EXCEL内将数据排序后使用IF涵数直接查找,

四、excel vba 数据处理,对应字符的比较

Sub pd()

'定义一个函数为pd,用来写一个判断程序

Dim x, y, z, i As Integer

'定义变量x, c, y, z, i为整形

Dim xx, yy, zz As String

'定义变量xx, yy, zz为文本字符型

For z = 2 To 3

'MsgBox(定义变量z为行循环次数,这里只需要循环判断2行数据,即第二行至第三行)

x = Len(Sheet1.Range(B & z))

'MsgBox (定义变量x为计算B2单元格的长度)

y = Len(Sheet1.Range(C & z))

'MsgBox (定义变量y为计算C2单元格的长度)

zz =

'MsgBox (清空变量zz的值,为下一行得数做准备)

For i = 1 To x

'MsgBox (定义变量i为循环,从1开始,次数为每行B列单元格的字段长度)

For i = 1 To x

If x <> y Then

Exit For

End If

'判断如果量个数据长度不同,则直接跳出循环,不进行计算

xx = Mid(Sheet1.Range(b & z), i, 1)

'定义变量xx为B列每行从左至右每次取得一位数字字符

yy = Mid(Sheet1.Range(c & z), i, 1)

'定义变量yy为C列每行从左至右每次取得一位数字字符

If (xx = 2 Or xx = 3) And (yy = 2 Or yy = 3) Then

'进行判断

zz = zz & 1

'判断为真的情况下赋值加上“1”这个字符

Else

zz = zz & 0

'判断为假的情况下赋值加上“0”这个字符

End If

Next i

'i循环结束继续跳转到z循环

Sheet1.Range(d & z) = ' & zz

'赋值每行比较后得到的结果值至每行D列

Next z

'z循环结束

End Sub

'判断程序的结束