求教EXCEL大神。批量设置excel文件格式

批量将这些文件设置成
列宽为3
B行 H行 V行设置成自动适应列宽
页面布局,纸张方向横向,页边距上下1.91cm,左右0.64cm。
页面设置调整为1页宽,1页长。

如果会写VBA代码,可以考虑使用vba实现。

如果编写VBA代码有困难,可以考虑如下方法

1、选择这些工作簿全部打开,然后将所有工作表通过全选、移动或复制,放到一个工作簿中(方便在一个工作簿中统一操作)。

2、选中工作簿中的多个工作表,然后设置格式、页边距、纸张方向、大小等

3、设置完成后,再将设置好的sheet表移动到原来的工作簿。

保存。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-09-21
如果会VBA的话,可以直接用VBA来解决。
问题是:【页面设置调整为1页宽,1页长。】
这个看不到内容的话是无法解决的。
剩下的,直接上代码就好了。
Sub Start()
Dim coll As Collection
Set coll = GetFiles(ThisWorkbook.path)
If vbYes <> MsgBox("发现 " & coll.Count & " 个文件。此操作不可逆,是否继续?", vbInformation + vbYesNo) Then Exit Sub
Dim i As Integer
Dim wb As Workbook
Dim sht As Worksheet
Dim filename As String

For i = 1 To coll.Count
filename = coll(i)
If filename <> ThisWorkbook.FullName Then
Set wb = Application.Workbooks.Open(filename)
For Each sht In wb.Worksheets
'AutoProcessSheet sht
Next
wb.Close SaveChanges:=True
End If
Next
End Sub

Private Function GetFiles(path As String) As Collection
Dim coll As New Collection
Dim d As String
If Right(path, 1) <> "\" Then path = path + "\"

d = Dir(path + "*.xls")
Do Until d = ""
coll.Add path + d
d = Dir()
Loop
Set GetFiles = coll

End Function

Private Sub AutoProcessSheet(sht As Worksheet)
sht.Cells.ColumnWidth = 3 '列宽为3
sht.Range("B:B,H:H,V:V").Columns.AutoFit 'B行 H行 V行设置成自动适应列宽

With sht.PageSetup
.LeftMargin = 0.64 '左边距 0.64
.RightMargin = 0.64 '右边距 0.64
.TopMargin = 1.91 '上边距 1.91
.BottomMargin = 1.91 '下边距 1.91
.HeaderMargin = 1.91 '页眉距 1.91
.FooterMargin = 1.91 '页脚距 1.91
End With

End Sub
相似回答