Страницы: 1
RSS
Выделение диапазона ячеек неактвного листа через InputBox
 
Здравствуйте.

Макрос ниже выводит в MsgBox ссылку на выделенный диапазон.
Вопрос: как сделать ссылку с названием листа? Сейчас указывается просто активный лист, а не тот лист, где выделялся диапазон.
Код
Sub ссылка_на_диапазон()
Dim список As Range, текст As String

Set список = Application.InputBox(prompt:="Выделите диапазон", Type:=8)

текст = "=" & ActiveSheet.Name & "!" & список.Address

MsgBox текст
End Sub
 
Код
Sub ссылка_на_диапазон()
    Dim список As Range, текст As String

    Set список = Application.InputBox(prompt:="Выделите диапазон", Type:=8)

    текст = "=" & список.Parent.Name & "!" & список.Address

    MsgBox текст
End Sub

одно слово заменил на два.
 
Цитата
rud.666 написал:
Сейчас указывается просто активный лист, а не тот лист, где выделялся диапазон.
А разве можно выделить диапазон на НЕ активном листе?
 
Hugo, спасибо!
Михаил Витальевич С., когда выделялся диапазон был активен один лист, а когда появлялся MsgBox, когда был активен другой лист.

Всё это было нужно, чтобы упростить создание выпадающих списков.
Код
Sub Выпадающий_список()

On Error Resume Next
Dim список As Range, текст As String
Set список = Application.InputBox(prompt:="Выделите список", Type:=8)
текст = "=" & список.Parent.Name & "!" & список.Address

    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:=текст
        .ShowError = False
    End With
    
End Sub
 
может кто нибудь прочтет и подскажет, хоть и тема старая, вот есть код, который находит по строкам в каждой строке максимальное и минимальное значение и выводит результат в 10 столбец, но почему то при нажатии на Отмена или Esc выдается ошибка - type mismatch, и компилятор ругается именно на строчку с InputBox, не понимаю почему?
Код
Sub Массив_Макс_Мин()
Dim myArray()
Dim i As Long
Dim j As Long
Dim max As Long
Dim min As Long
Dim myCell As Range
Set myCell = Application.InputBox(prompt:="Выделите диапазон", Type:=8)       'выделние ячеек через InputBox
If myCell.Count = 1 Then Exit Sub                'если выбрана только одна ячейка то выход
myArray = myCell.Value
For i = 1 To UBound(myArray, 1)
    max = myArray(i, 1)
    min = myArray(i, 1)
    For j = 1 To UBound(myArray, 2)
        If myArray(i, j) > max Then
            max = myArray(i, j)
        ElseIf myArray(i, j) < min Then
            min = myArray(i, j)
        End If
    Next j
    Cells(i, 10).Value = "max" & " " & max & " " & "min" & " " & min
Next i
End Sub
Изменено: Артем Кузнецов - 16.08.2020 03:25:45
 
Доброе время суток
Цитата
Артем Кузнецов написал:
не понимаю почему?
Ошибка эта зарегистрирована уже кучу лет тому назад. Стоит только поискать на форуме и в интернете :)  Например, INPUTBOX - как выбрать отмену?
 
Вопрос не по теме
 
Тут я тоже вполне подробно описывал как обойти эту ошибку: Диалог выбора диапазона Application.InputBox
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
On Error Resume Next помогло, спасибо
Страницы: 1
Наверх