0

我需要调整特定工作表中特定列的大小。但无法这样做

Sub resizeColumn(sourceWb As String, Sheet As String, column As String)
Dim wkbSource As Workbook
Dim sheetName As Worksheet
Dim columnname As String
Application.ScreenUpdating = False
Set wkbSource = Workbooks.Open(sourceWb)
Set sheetName = wkbSource.Sheets(Sheet).Activate
Worksheets("Column width").Range("A5").ColumnWidth = 16
wkbSource.Close SaveChanges:=True
wkbSource.Close
End Sub
4

1 回答 1

0

我认为问题在于您正在混合名称和对象。我从您的代码中假设您想以这种方式调用它:

Sub CallResizeColumn()
    Call ResizeColumn("PathToYourWorkbook.xlsm", "SheetToResize", "A5")        
End Sub

我通过在参数的开头添加 ap 改变了你的符号(我认为将它们称为与关键字非常相似不是一个好习惯)。请记住,您需要使用对您的范围的完整引用(“workbook.worksheet.range”)。(注意:当您关闭 SreenUpdating 时,请务必将其关闭。)

Private Sub ResizeColumn(pSourceWb As String, pSheet As String, pColumn As String)
    Dim wkbSource As Workbook
    Dim shSheet As Worksheet
    Dim rngColumn As Range
    'Application.ScreenUpdating = False
    Set wkbSource = Workbooks.Open(pSourceWb)
    Set shSheet = wkbSource.Sheets(pSheet)
    Set rngColumn = shSheet.Range(pColumn)
    rngColumn.ColumnWidth = 16
    'wkbSource.Close SaveChanges:=True
    wkbSource.Close
End Sub
于 2020-06-05T05:45:45.790 回答