#excel #vba
#excel #vba
Вопрос:
Добрый день,
Я пытаюсь выбрать этот диапазон, и, похоже, код обрабатывается, но когда я добираюсь до своего if rng is nothing then
, он не захватывает диапазон. Я застрял на этом некоторое время, и любые мысли помогут. Это также фрагмент кода, но я просто предположил, что это самая важная часть.
Обратите внимание, что я должен соблюдать это условие, потому что этот раздел кода будет вызываться всегда, и если он пуст, он пропустит и запустит следующую строку. Так что я не могу просто select.
повторить, какие-либо мысли, помощь была бы очень признательна! Задавайте мне любые вопросы, если не ясно. Большое вам спасибо.
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object
Set rng = Nothing
On Error Resume Next
Set srng = Sheets("Email Template").PivotTables("PivotTable5")
Set rng = Sheets("Email Template").Range("B3:J13" amp; srng)
Set DDT = Worksheets("Email Template").Range("X2")
Set Teamail = Worksheets("Email Template").Range("X3")
On Error GoTo 0
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" amp; _
vbNewLine amp; "please correct and try again.", vbOKOnly
Exit Sub
Ответ №1:
Первое, что вам нужно сделать, это получить диапазон сводной таблицы, затем, если вы хотите настроить rng для ссылки как на B3: J13, так и на srng, используйте Union.
Dim rng As Range
Dim srng As Range
Dim DDT As Range
Dim Teamail As Range
Dim OutApp As Object
Dim OutMail As Object
Set srng = Sheets("Email Template").PivotTables("PivotTable5").TableRange1
Set rng = Union(Sheets("Email Template").Range("B3:J13"), srng)
Set DDT = Worksheets("Email Template").Range("X2")
Set Teamail = Worksheets("Email Template").Range("X3")
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" amp; _
vbNewLine amp; "please correct and try again.", vbOKOnly
Exit Sub
End If
PS Неясно, какую часть сводной таблицы вы хотите, я использовал DataBodyRange, но вы можете использовать TableRange1 для получения всей таблицы.
Комментарии:
1. Привет, спасибо за ваш ответ, но я все еще получаю сообщение об ошибке, мысли?
2. Я отредактировал свой ответ — ваш код (и мой исходный код) возвращал фактическую сводную таблицу, а не ее диапазон.
3. Привет, Нори, спасибо за вашу помощь… но я все еще сталкиваюсь с заявлением об ошибке.
4. Не уверен, на какое утверждение об ошибке вы ссылаетесь, вы имеете в виду окно сообщения после инструкции If? Что произойдет, если вы удалите On Error Resume Next?
5. Я обновил свой ответ, чтобы показать точный код, который я использовал.