Действие между массовым выделением в InputBox - PullRequest
0 голосов
/ 20 ноября 2018

Я получаю строковый массив из InputBox с:

Set productName = Application.InputBox("Select products from list:", _
  "Our dialog", , , , , , 8)

Я хочу закрасить ячейки, которые я выбрал, после каждого выбора.Например, я хочу выбрать 10 ячеек (с одним действием InputBox).Я выбираю одну (на этом шаге я хочу закрасить эту ячейку, чтобы помнить, что я уже выбрал ее), затем нажмите CTRL, выберите вторую (закрасьте ячейку), выберите третью (закрасьте ячейку) и т. Д.

Можно ли сделать это с VBA?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Ответ на ваш вопрос «Можно ли сделать это с помощью VBA» : Нет, это невозможно.

Вы не можете сделать это только с one InputBox, но вы можете продолжать запрашивать выбор диапазона, пока пользователь не нажмет отмену.

Option Explicit

Public Sub ColorizeSelections()
    Dim SelRange As Range
    Dim ColorRange As Range

    Do
        On Error Goto CANCEL_LOOP 'next line throws error if cancel is pressed
        Set ColorRange = Application.InputBox("Select products from list:", "Our dialog", , , , , , 8)
        On Error GoTo 0 'always re-activate error reporting!!!

        ColorRange.Interior.Color = vbGreen 'color new selected range

        'remember all selected ranges in SelRange
        If SelRange Is Nothing Then
            Set SelRange = ColorRange
        Else
            Set SelRange = Union(SelRange, ColorRange)
        End If

        SelRange.Select 'select all previously selected ranges that were already colored.
    Loop
CANCEL_LOOP:
    'other stuff goes here
End Sub
0 голосов
/ 20 ноября 2018
Sub ran()
    Dim stc As Range
    Dim ytd As String
    Do
        On Error GoTo cc
        Set stc = Application.InputBox("Selection", "Select range", Type:=8)

        Dim cell As Range
        stc.Interior.ColorIndex = 8
    Loop
cc:
    MsgBox ("Done")
    Exit Sub
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...