A. 使用VBA将一个excel工作簿中的四个工作表导出为四个文件
我觉得是思路有问题,先把表复制成单一文件,再选择性粘贴值就行了
B. 如何用VBA将同一个文件夹下所有EXCEL表中的所有sheet表的数据导出到一个EXCEL中
新建一培埋败个工作薄,将所有EXCEL表的文件名填到A列中,复制下面VBA代码到工作配颤薄中,保存液改为excel.xls后执行
Sub xls()
Application.ScreenUpdating = False
'Arr数组由所有EXCEL文件名组成
arr = [A1:A10]
For i = 1 To UBound(arr)
Workbooks.Open "文件夹路径\" & arr(i, 1)
Workbooks(arr(i)(1)).Activate
For j = 1 To ActiveWorkbook.Sheets.Count
Sheets(j).Copy After:=Workbooks("excel.xls").Sheets(Workbooks("excel.xls").Sheets.Count)
Next
Workbooks(arr(i, 1)).Close False
Next
End Sub
C. 一个VBA程序怎么处理多个excel 表格
EXCEL VBA里面需要顺序执行多个宏的时候,可以另外建立一个宏,按顺序依次调用这些宏即可,例如下面的test宏依次调用宏1、宏2、宏3:Sub test() Call 宏1 Call 宏2 Call 宏3End Sub
D. 如何用vba批量将一个excel文件中的多个工作表另存为的新工作薄(新excel文件)
答:
SubDemo()
DimShtAsWorksheet
DimFilePathAsString
FilePath=ThisWorkbook.Path&""
Application.ScreenUpdating=False
ForEachShtInThisWorkbook.Sheets
IfNotSht.Name="分析"Then
WithSht
.UsedRange.Value=.UsedRange.Value
.Copy
EndWith
WithActiveWorkbook
.SaveAsFilename:=FilePath&Sht.Name
.Close
EndWith
EndIf
NextSht
Application.ScreenUpdating=True
MsgBox"导出完成"
EndSub
E. VBA如何将多个不同的Excel文件批量导入到一个新的Excel文件中的一个sheet内,并且是有顺序不会覆盖
我每月处理一万个excel文件,每个文件里抽取符合条件的部分再合并到一起。
看你有多少文件,vba效率是一秒一个文件,VBA+sql快10倍,python再快10倍尺迅。我用python一般15分钟内处理完一万个文件。
vba也很简单,你录制宏,录制导入一个文件的,代码贴困困改上来,我们改下就汪判ok。
可以发样表,50块做好给你。私信。
F. EXCEL VBA实现将一个excel分解成多个excel文档,自己写的代码有点问题,求教啊!
Sub 分解()
Dim H As Long, H1 As Long, M As String, K As Integer, BM As Workbook
Dim PAT As String
Application.ScreenUpdating = False
PAT = ThisWorkbook.Path & "\"
With Sheet2
Rows("1:1").Select
Selection.Delete Shift:=xlUp '第一行没用
H = .Range("a65536").End(xlUp).Row
For H1 = 1 To H '此处有问题,H的值并为纳入循环
If M = "" Then
M = .Cells(H1, 1).value
End If
If .Cells(H1, 1) <> .Cells(H1 + 1, 1) Then
Set BM = Workbooks.Add(1)
.Range(.Cells(H1 - K, 1), .Cells(H1, 5)).Copy BM.Sheets(1).Cells(1, 1)
BM.SaveAs Filename:=PAT & M & ".csv"
BM.Close True
M = ""
K = 0
Else
K = K + 1
End If
Next H1
End With
Application.ScreenUpdating = True
End Sub
2.处理38这个在复制前就处理掉好,不要后处理。
可以在 For H1 = 1 To H
If M = "" Then
之间插入下列代码。
If Left(.Cells(H1, 5).Text, 2) - 38 = 0 Then
.Cells(H1, 5) = Right(.Cells(H1, 5).Text, Len(.Cells(H1, 5).Text) - 2)
End If
3.修改A1的值就和上面的老兄一样:
cells(1,1).value=3或range("A1").value=3