Sub ADO联合查询()
Dim cnn As Object, SQL$, MyPath$, MyFile$, m&, n&
Setzen Sie cnn = CreateObject("ADODB.Connection")
[a:b].ClearContents
MyPath = ThisWorkbook.Path & ""
MyFile = Dir(MyPath & "*.xls")
Do While MyFile ""
If MyFile ThisWorkbook.Name Then
n = n + 1
Wenn n = 1, dann cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended;Data Source=" & MyPath & MyFile
m = m + 1
Wenn ich >49 bin, dann
Range("a" & Rows.Count).End(xlUp).Offset(1).CopyFromRecordset cnn.Execute(SQL)
m = 1
SQL = ""
Ende wenn
If Len(SQL) Then SQL = SQL & " Union all "
SQL = SQL & "select f1,'" & Replacement(MyFile, ".xls", "") & "' from [Excel 8.0;hdr=no;Database=" & MyPath & MyFile & "].[Sheet1$ A2:A]"
Ende wenn
MyFile = Dir()
Schleife
If Len(SQL) Then Range("a" & Rows.Count).End(xlUp).Offset(1).CopyFromRecordset cnn.Execute(SQL)
cnn.Close
Setze cnn = Nichts
End Sub
Private Sub CommandButton1_Click()
'最后一行r, 上面插入一行, 横向合并单元格n格, 填充数据s
Dim n, s, col, r, tmp
'----设定----
n = 2 '横向合并单元格n格
s = "XXXXXX" '填充数据s
col = "A" '以col列为操作的最左列
'----执行----
Mit ActiveSheet
r = .Cells(65536, col).End(xlUp).Row
.Rows(r).Insert xlShiftDown '插入行
Mit .Cells(r, col).Resize(1, n)
.Merge '合并单元格
.Value = s '填充数据
Ende mit
Ende mit
End Sub
Das obige ist der detaillierte Inhalt vonFühren Sie alle Arbeitsblätter mit VBA zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!