调整特定列的列宽

Resize column width of a particular column

我需要调整 excel 特定列的大小 sheet.But 无法这样做

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

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

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

我通过在参数的开头添加一个 p 对您的符号进行了一些更改(我认为将它们称为与关键字非常相似并不是一个好习惯)。 请记住,您需要使用您的范围的完整参考 ("workbook.worksheet.range")。 (注意:当您关闭屏幕更新时,请务必将其关闭。)

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