问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VBA 按条件查找并提取数据

发布网友 发布时间:2022-04-21 17:12

我来回答

4个回答

热心网友 时间:2022-05-11 00:08

不需要VBA,只需要vlookup函数就可以了,比如根据销售订单号(在E1)找印刷设备,可以设这样的公式:=VLOOKUP(E1,A:D,2,0),其他的类推(比如=VLOOKUP(E1,A:D,3,0))就可以了。

热心网友 时间:2022-05-11 01:26

为何要放在两个工作簿呢? 直接把两个工作表放在一个工作簿 用vlookup解决就可以了啊
复杂的问题要简单化
用vba提取数据在不同的工作簿里会影响运行速度的追问工作需要,要用不同的表,而且表数据也是非常大,有一个是共享的,如果放在一起运行会更慢。

热心网友 时间:2022-05-11 03:01

另外一个表格印刷设备是不是一定是非空列,如果是的话直接使用VLOOKUP就好了

热心网友 时间:2022-05-11 04:52

比如sheet1表要从sheet2表中提取数据:
将如下代码复制到sheet1的代码编辑窗口下:
Private Sub qq()
Dim i As Integer, j As Integer
For i = 2 To 10000 Step 1
If Sheet1.Cells(i, 1) = "" And Sheet1.Cells(i + 1) = "" And Sheet1.Cells(i + 2) = "" Then Exit For
For j = 1 To 10000 Step 1
If Sheet1.Cells(j, 1) = "" And Sheet1.Cells(j + 1) = "" And Sheet1.Cells(j + 2) = "" Then Exit For
If Sheet1.Cells(i, 1) = Sheet2.Cells(j, 1) Then
If Sheet1.Cells(i, 2) = "" Then
Sheet1.Cells(i, 2) = Sheet2.Cells(j, 2)
Sheet1.Cells(i, 3) = Sheet2.Cells(j, 3)
Sheet1.Cells(i, 4) = Sheet2.Cells(j, 4)
End If
End If
Next j
Next i
End Sub
'运行即可

'根据提问者的问题补充,我又做了如下代码,放于表B的工作表代码编辑窗口下:
'比如表A的工作表名称是:表A.xls,数据都A、B、C、D四列中
Private Sub qq()
Dim i As Integer, j As Integer
For i = 2 To 10000 Step 1
If Cells(i, 1) = "" And Cells(i + 1,1) = "" And Cells(i + 2,1) = "" Then Exit For
For j = 1 To 10000 Step 1
If GetValue("D:\", "表A.xls", "Sheet1", "A" & j) = 0 And _
GetValue("D:\", "表A.xls", "Sheet1", "A" & j + 1) = 0 And _
GetValue("D:\", "表A.xls", "Sheet1", "A" & j + 2) = 0 Then Exit For
If Cells(i, 1) = GetValue("D:\", "表A.xls", "Sheet1", "A" & j) Then
If Cells(i, 2) = "" Then
Cells(i, 2) = GetValue("D:\", "表A.xls", "Sheet1", "B" & j)
Cells(i, 3) = GetValue("D:\", "表A.xls", "Sheet1", "C" & j)
Cells(i, 4) = GetValue("D:\", "表A.xls", "Sheet1", "D" & j)
End If
End If
Next j
Next i
End Sub

'创建函数,从关闭的工作薄返回值
Private Function GetValue(path, filename, sheet, ref)
Dim MyPath As String
'确定文件是否存在
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & filename) = "" Then
GetValue = "File Not Found"
Exit Function
End If
'创建公式
MyPath = "'" & path & "[" & filename & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)
'执行EXCEL4宏函数
GetValue = Application.ExecuteExcel4Macro(MyPath)
End Function
'函数参数说明
'-----------------------------------------------------------------
'path:文件路径
'filename:文件名称
'sheet:工作表名称
'ref: 单元格区域
'-----------------------------------------------------------------
'好用的话,还希望采纳并加分哦!!!!!!!!!!!!!!!!!!!!!!追问要求达到了,但是运行的速度非常慢,有没有可能采用ADO来提取数据。

追答不好意思哦,这个还真的不会哦!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
智能化公交系统名词解释 发酵工程考研科目有哪些 激素脸怎么选择补水护肤品? 西安铁路局的辖区问题 人保车险积分也做什么 跟女友吵架了 想主动和好 不知道怎么开口 主动与女朋友和好,该怎么开口 复合怎么开口第一句简洁(但是觉得给不了对方想要的) 电汇结算是什么 什么是电汇结算 如何利用excel vba提取指定条件的数据 小米10正常相机和108m乃个照的质量好? 小米10s超级防抖没效果 小米10和p40拍照哪个好 为什么小米10致尊版手机没有光学防抖功能? 现在的小米手机旗舰机是不是都没有那个防抖功能呀... 小米10光学防抖怎么打开 小米10致尊相机不支持osi防抖吗 小米10稳定版是双防抖功能吗? excel count函数的用法 内置计算函数count的功能是 count()函数的作用是将范围内单元格内容相加这句话... 计算机里COUNT是什么函数?怎么用的?好评!! 函数COUNT(A1:A10)的功能是 excel函数的count与counta的运用有什么区别啊 excel中count函数的功能是什么 函数count的功能是 西安的兵马俑坑闻名中外,它到底是怎样形成的? 秦兵马俑的四号坑下面有没有俑 兵马俑坑下面还有文物么 vba 单独提取符合条件数据 VBA中怎样把行里数据根据某一条件写到另一张表对应... VBA提取符合某列条件的行数据到指定的工作表位置,... 如何用2007版Excel VBA提取给定条件单元格数据? Excel 用VBA提取数据 excel满足一定条件提取数据,最好用VBA 求助: 利用VBA按照指定条件搜索数据,并把数据复制... EXCEL中请用VBA按要求提取数据。 用vba提取一列数中第一个满足条件的数值 VBA 跨工作簿按条件查找并提取数据 Vba实现“提取工作簿指定工作表符合条件的数据到特... VBA 如何按照特定的条件获取一定范围内的随机数据.... 用VBA实现Excel中数据的提取并且汇总 如何使用Excel vba快速提取需要的信息? 怎么用vba实现按条件提取word文档中的数据? VBA 提取满足条件的值到另一个表 澳洲PTE考试培训机构哪个比较好?哪家PTE培训辅导... 网上那些免费的澳洲留学中介靠谱吗 新移民到澳洲如何免费参加英语课程 澳大利亚免费英文培训班