调整特定列的列宽
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
我需要调整 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