【发布时间】:2020-08-20 10:15:37
【问题描述】:
我有一个文件夹,每天将接收 30 个文件,该文件包含多张工作表,在这些工作表中,一些标题从第 1 行开始,一些从第 5 行开始。我需要根据行标题名称应用冻结,我需要从文件夹外部运行宏。 应用冻结后,我需要自动化将文件发送到客户端的过程。
我尝试了以下但得到错误
“类型不匹配的源VBAProject”
Sub FreezePanes()
Call freeze("*.xlsx", "no")
End Sub
Sub freeze(fileName As String, hide As String)
Dim path As String
Dim srcFile As String
On Error GoTo ErrorHandler
path = "C:\Users\RadhaRani\Desktop\Excel\"
srcFile = fileName
Application.ScreenUpdating = False
Dim rng As Range
Dim wks As Workbook
Set wks = Workbooks.Open(path + srcFile)
Set wks = Application.ActiveSheet
For Each ws In Worksheets
ws.Select
Set rng = ActiveCell
Range("A5").Select '<== set Freeze point here
ActiveWindow.FreezePanes = True
rng.Select
Next
wks.Select
ActiveWorkbook.Save
wks.Close
Set wks = Nothing
【问题讨论】:
-
如果您在第 5 行有标题,您想使用第 6 行来设置您的
FreezePanes -
Set wks = Workbooks.Open(path + srcFile)是有问题的,因为您应该使用&来连接,而不是+,更重要的是,Workbooks.Open不适用于通配符。一种选择是使用Dir来获取文件名。