Я новичок в VBA, и я пытаюсь написать код, который выбирает, получает диапазон всех ячеек на листе, отличном от текущего, печатает его в окне сообщения (для целей тестирования) и возвращает на исходный лист . Я намерен использовать этот диапазон для создания сводной таблицы на новом листе, поэтому в итоге он должен иметь вид «R1C1:R929C25
». Для этого я использовал код, который нашел здесь:
Как вы выбираете весь лист Excel с диапазоном, используя макрос в VBA?
Это код, который у меня есть до сих пор:
Sheets("My_Sheet_Name").Cells.Select
MsgBox (Str(Range(Cells.Address)))
Sheets(Sheets.Count).Select
Однако это возвращает ошибку:
Ошибка выполнения "1004":
Не удалось выбрать метод класса Range.
Редактировать: я получил код для получения диапазона, но как мне преобразовать его в форму «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