乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何利用VBA从多个excel文件中提取出含特定字段的数据

如何利用VBA从多个excel文件中提取出含特定字段的数据

作者:乔山办公网日期:

返回目录:excel表格制作


用vba编写宏可以实现。具体要求请发我qq邮箱。

这是一个 多文件汇总问题。

  1. 多个文件的路径,文件名 

  2. 每个文件 对应的表,单元格。。。

等等

具体情况要看   汇总文件   和   多个文件的内容  按需编程。


要通过EXCEL查询指定数据库e5a48de588b67a64361中的含 有指定字段的表名时,首先得知道查询SQL,查询SQL如下:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME='字段名'

如果要写成VBA的话,下面给你一段我写的宏,测试过了:

-----------

Sub 宏7()

' 宏7 宏

Application.CutCopyMode = False

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _

"ODBC;DRIVER=SQL Server;SERVER=服务器IP;UID=sa;;APP=Microsoft Office 2016;WSID=GUESS;DATABASE=要查询的数据库名" _

, Destination:=Range("$A$1")).QueryTable

.CommandType = xlCmdSql

.CommandText = Array( _

"SELECT TABLE_NAME" & Chr(13) & "" & Chr(10) & "FROM 要查询的数据库名.INFORMATION_SCHEMA.COLUMNS" & Chr(13) & "" & Chr(10) & "WHERE (COLUMN_NAME='要查询的字段名')")

.RowNumbers = False

.FillAdjacentFormulas = False

.PreserveFormatting = True

.RefreshOnFileOpen = False

.BackgroundQuery = True

.RefreshStyle = xlInsertDeleteCells

.SavePassword = False

.SaveData = True

.AdjustColumnWidth = True

.RefreshPeriod = 0

.PreserveColumnInfo = True

Dim chars As String

Dim rndstr As String

chars = "ABCDEFGHJKLMNPQRSTUVWXYZ0123456789"

Randomize

For i = 1 To 6

rndstr = rndstr & Mid(chars, Int(Rnd() * Len(chars) + 1), 1)

Next

.ListObject.DisplayName = rndstr

.Refresh BackgroundQuery:=False

End With

End Sub

最后结果如下图:



应该用到三个字符串函数:LEFT、RIGHT、MID
1、LEFT函数:
用法:LEFT(要提取字符所在单元格,从左侧开始提取的个数)
例如:=LEFT(A1,2) 意思是从A1单元格提取前两个字符。
2、RIGHT函数:
用法:RIGHT(要提取字符所在单元格,从右侧开始提取的个数)
例如:=RIGHT(A1,2) 意思是从A1单元格提取最后两个字符。
3、MID函数:
用法:MID(要提取字符所在单元格,开始位置,提取个数)
例如:=MID(A1,2,2) 意思是从A1单元格提的第二个单元格开始,提取两个字符,也就提取A1单元格第2个和第3个字符。
注:用MID函数,也可以替代前两个函数,比如:=MID(A1,1,2)与=LEFT(A1,2)的结果是一样的,再比如:=MID(A1,LEN(A1)-2+1,2)与=RIGHT(A1,2)的结果是一样的只是这里用到LEN函数,其作用是取得单元格字符串的长度。
4、提取后的字符合并:
字符合并要用到连接符号:&
比如:=LEFT(A1,2)&RIGHT(A1,2) 意思是把A1单元格的前两个和最后两个字符,提取出来组成一个新的字符。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网