下标超出范围VBA打印

问题描述

我有一个脚本可以打印“下载”文件夹中的所有内容,VBA脚本可以正常工作,直到我在“将列调整为宽度”中添加了一些代码,这样我才能在打印之前看到所有数据,现在在打开“下载”文件夹中的第一个文件时说“下标超出范围”,我认为这是因为“ Sheet1”从未被称为“ Sheet1”,而是被命名为实际文件名的前15个字符。 / p>

有人可以提供帮助吗?

我刚添加的位: Worksheets("Sheet1").Columns("A:H").AutoFit

我的完整代码

Dim wb As Workbook,ws As Worksheet
Dim FileName As String,Path As String
Set wb = ActiveWorkbook
Set ws = ActiveSheet

Path = "C:\Users\Jonathan.mackell\Downloads\*.csv"

FileName = Dir(Path,vbnormal)
Do Until FileName = ""
Application.displayAlerts = False
Workbooks.Open Left(Path,Len(Path) - 5) & FileName
Worksheets("Sheet1").Columns("A:H").AutoFit
Set wb = ActiveWorkbook
For Each ws In wb.Worksheets
ws.PrintOut
Next
wb.Close
FileName = Dir()
Loop
End Sub

任何帮助表示赞赏!

解决方法

在打开wb变量而不是使用activeworkbook时设置它,并包括sh变量而不是使用activesheet,然后将其放入循环中,因此您无需知道名称。

Sub Test

Dim wb As Workbook,ws As Worksheet
Dim FileName As String,Path As String

Path = "C:\Users\Jonathan.mackell\Downloads\*.csv"

FileName = Dir(Path,vbNormal)
Do Until FileName = ""
Application.DisplayAlerts = False
Set wb = Workbooks.Open(Left(Path,Len(Path) - 5) & FileName)

For Each ws In wb.Worksheets
  ws.Columns("A:H").AutoFit
  ws.PrintOut
Next
wb.Close
FileName = Dir()
Loop
End Sub

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...