Я использую Access для циклического преобразования таблицы данных и создания рабочей книги Excel (с тремя листами) для каждой строки в таблице базы данных. Все работает очень хорошо, пока я не вводил код, используя «Range», чтобы скрыть некоторые столбцы и строки. Код будет работать успешно в первой строке, но с ошибкой. Он также потерпит неудачу, если мы снова запустим код. Если мы выйдем из Access, а затем снова запустим, то первая строка снова будет успешной.Доступ vba excel Диапазон
NewFileName = "C:\Paul2016Puzzle\TestNewName" + "Project" + Str(iteration)
'MsgBox NewFileName
Set XL = New Excel.Application
Set WB = XL.Workbooks.Open(NewFileName)
WB.Activate
Set wks = WB.Worksheets(2)
XL.ScreenUpdating = False
XL.DisplayAlerts = False
wks.Select
WB.Sheets(2).Activate
StrExcel = Chr(65 + WorkingColumns + 1)
StrExcel = StrExcel + ":" + StrExcel
MsgBox StrExcel
WB.Sheets("Sheet 2").Select
WB.Sheets("Sheet 2").Range(StrExcel).Select
WB.Sheets("Sheet 2").Activate
wks.Range(StrExcel).Activate
wks.Columns(StrExcel).Select
wks.Range(StrExcel).Select
ActiveSheet.Range(Selection, Selection.End(xlToRight)).Select
Selection.EntireColumn.Hidden = True
Rows("12:12").Select
ActiveSheet.Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Hidden = True
wks.Cells(1, 1).ColumnWidth = 30 '(Set column width)
For i = 2 To WorkingColumns + 1
wks.Cells(1, i).ColumnWidth = 15
Next i
Я отбросил этот фрагмент кода в свою программу, и он отлично работает. Количество столбцов будет варьироваться от одного листа распространения до другого, и я хочу скрыть все столбцы справа. Количество строк является постоянным, и я хочу скрыть все строки ниже строки 12. Другими словами, будет отображаться только верхний левый угол таблицы. Немного дальнейшая помощь будет оценена. Спасибо. – RyszardJ
Я обновил код, чтобы показать, как скрыть строки/столбцы с учетом первой и последней ссылки на строку/столбец. Вы можете использовать '.Cells (1,1) .End (xlToRight)' или любой другой способ, который вам подходит, чтобы получить требуемые номера строк/столбцов. '.Range (.Cells (1, 1), .Cells (1, 1) .End (xlToRight)). EntireColumn.Hidden = True' также должен работать. –
Благодарим за помощь. Это почти сработало, но мне пришлось ввести константы для последней колонки и последней строки. Но, по крайней мере, я добираюсь туда. Последняя вещь - вы можете рекомендовать хорошее руководство по доступу, поскольку я просто балуюсь и работаю интуитивно. Спасибо RWJ – RyszardJ