Я новичок в VBA, и я пытаюсь написать код, который выбирает, получает диапазон всех ячеек в другом листе, чем текущий, печатает его в окне сообщения (для тестирования) и возвращается к исходному листу. Я намерен использовать этот диапазон для создания сводной таблицы в новом листе, и поэтому в конце концов она должна иметь вид «R1C1:R929C25
» Для того, чтобы сделать это, я использовал код, который я нашел здесь:Выбор всех данных на другом листе VBA
How do you select the entire Excel sheet with Range using Macro in VBA?
Это код, который я до сих пор:
Sheets("My_Sheet_Name").Cells.Select
MsgBox (Str(Range(Cells.Address)))
Sheets(Sheets.Count).Select
Однако это возвращает ошибку:
Run-time error '1004':
Select method of Range class failed.
Edit: Я получил код для получения диапазона, но как это сделать в форме «R1C1:R929C25
»?
ЗАВЕРШЕНА РАБОТА КОД:
Dim rng As Range
Set rng = Sheets("My_Sheet").UsedRange
Dim rc_range
rc_range = "R" & Trim(Str(rng.Rows.Count)) & "C" & Trim(Str(rng.Columns.Count))
MsgBox (rc_range)
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"My_Sheet!R1C1:" & rc_range, Version:=xlPivotTableVersion10). _
CreatePivotTable TableDestination:=ActiveSheet.Name + "!R4C4",
TableName: = InputValue + "_PivotTable" _ , DefaultVersion: = xlPivotTableVersion10
Привет, это сработало!Однако, поскольку я делаю сводную таблицу с этим диапазоном, как мне изменить ее на форму «R1C1: R929C25»? – Paradox
Вам не нужно его преобразовывать, и вам не нужно получить доступ к свойству адреса, чтобы загрузить его в сводную таблицу. Вместо этого обратитесь к переменной напрямую: 'ActiveWorkbook.PivotCaches.Create (SourceType: = xlDatabase, SourceData: = rng, ...' – user3561813
Как бы указать этот диапазон для другого листа? – Paradox