Изменение ширины столбца определенного столбца

Мне нужно изменить размер определенного столбца excel на определенном листе. Но я не могу этого сделать.

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

person Nani    schedule 05.06.2020    source источник
comment
Вы можете указать, как именно вы вызываете эту подпрограмму, поскольку она включает аргументы.   -  person braX    schedule 05.06.2020
comment
У вас действительно есть рабочий лист с именем Column Width?   -  person jamheadart    schedule 05.06.2020
comment
да ... образец один   -  person Nani    schedule 05.06.2020


Ответы (1)


Я думаю, проблема в том, что вы смешиваете имена и объекты. Я предполагаю из вашего кода, что вы хотели бы вызвать это следующим образом:

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

Я немного изменил вашу запись, добавив букву p в начале ваших параметров (я думаю, что это не очень хорошая практика называть их очень похожими на ключевые слова). Имейте в виду, что вам нужно использовать полную ссылку на ваш диапазон ("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
person Viktor West    schedule 05.06.2020