求助,利用excel vba提取数据库数据问题

求助,利用excel vba提取数据库数据问题,第1张

1、汉字在前,数字在后面的情形。可以用MID,min, find三个函数来实现提取里面的数字。如图:在B2输入“=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&“0123456789”)),20)”

2 、把单元格里面所有的数字都提出来。可以使用宏。先打开VBA编辑器。工具——宏——visual basic 编辑器

3、在编辑器里点击插入——模块。在模块那里输入如下代码:

Function zzsz(xStr As String) As StringDim i As IntegerFor i = 1 To Len(xStr)If IsNumeric(Mid(xStr, i, 1)) Then zzsz = zzsz &Mid(xStr, i, 1)NextEnd Function

4、回到工作表,在B2单元格那里输入“=zzsz(A2)”。就可以用VBA把A2单元格里所有的数字都提取出来了,如图所示。

Excel怎么只提取表格中的数字

5、指定从第几个数组提取开始。也就是说在不连续的那些数字中,从第几次出现的数组开始提取。同样在模块那里输入如下代码:

Function GetNums(rCell As Range, num As Integer) As StringDim Arr1() As String, Arr2() As StringDim chr As String, Str As StringDim i As Integer, j As IntegerOn Error GoTo line1

Str = rCell.TextFor i = 1 To Len(Str)chr = Mid(Str, i, 1)If (Asc(chr) 《 48 Or Asc(chr) 》 57) ThenStr = Replace(Str, chr, “ ”)End IfNext

Arr1 = Split(Trim(Str))ReDim Arr2(UBound(Arr1))For i = 0 To UBound(Arr1)If Arr1(i) 《》 “” ThenArr2(j) = Arr1(i)j = j + 1End IfNext

GetNums = IIf(num 《= j, Arr2(num - 1), “”)line1:End Function

Option Explicit

Sub 发票号查询()

Application.ScreenUpdating = False '关闭屏幕刷新

Dim j&, m&, k&, i&

j = Sheets("资料信息").[A65536].End(3).Row '计算资料信息表数据总行数

m = Sheets("同一发票号下商品信息").[A65536].End(3).Row '计算同一发票号下商品信息表数据总行数

Sheets("同一发票号下商品信息").Rows("3:" &m + 1).Delete '删除同一发票号下商品信息表第3到最后一个有数据的行

k = 2 '计数器k初始化为2 假设表头有2行,提取的数据copy的位置从第3行开始

For i = 2 To j 'i从第2行循环到资料信息表的最后一行

If Sheets("资料信息").Cells(i, "x") = Sheets("同一发票号下商品信息").Range("B1") Then'如果资料信息表的第i行第x列的值与同一发票号下商品信息表的B1单元格数据相同

k = k + 1'计数器k的值+1

Sheets("资料信息").Rows(i).Copy Sheets("同一发票号下商品信息").Range("A" &k)'资料信息表第i行复制到同一发票号下商品信息表的A &k单元格 k为计数器的当前值,例如k=3就是A3单元格

End If

Next

[B1].Select

Application.ScreenUpdating = True'恢复屏幕刷新

End Sub

高级筛选不就好了

 Sub shaixuan() 

Sheets("Sheet4").rows("2:10000").clearcontents

sheets("sheet1").Range("A:X").AdvancedFilter Action:=xlFilterCopy, criteriarange:=Worksheets("Sheet3").Range("D1:Dn"), copytorange:=Worksheets("sheet4").Range("A2"), unique:=False  'D1:Dn改为实际范围

MsgBox "筛选完毕"

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9748206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存