Как выбрать определенные диапазоны для определенных случаев? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь, чтобы пользователь выбрал определенный диапазон (ввод, вывод или p) и скопировал выбранные ячейки в новую рабочую таблицу. У меня уже есть вторая половина, но у меня проблемы с созданием функции для выполнения первой части.

Короче говоря, если пользователь хочет видеть ввод, он выберет вход «опция», тогда мой код будетвыделите только ячейки от C8 до F8 и скопируйте в новый лист. Если они выбирают вывод, то мой код будет выделять только ячейки от H8 до K8 и так далее. Я новичок в VBA!

Я попытался использовать оператор If и кратко рассмотрел Case.

Dim myRange As Range
Dim inputRange As Range
Dim outputRange As Range
Dim pRange As Range

Set inputRange = Range(Range("C8"), Range("F8"))
Set outputRange = Range(Range("H8"), Range("K8"))
Set pRange = Range(Range("M8"), Range("P8"))

1 Ответ

0 голосов
/ 30 октября 2019

Я думаю, что вы были на правильном пути с оператором * 1001. *по тому же адресу, что и диапазон на листе 1. Возможно, это не идеальное место для размещения, но я позволю вам обработать адрес назначения.

Public Sub selectRange()

Dim cpyRng As Range
Dim sht1 As Worksheet, sht2 As Worksheet
Dim sIn As String

Set sht1 = ActiveSheet
Set sht2 = ActiveWorkbook.Sheets.Add(after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count))
sht2.Name = "CopiedData"

    sIn = Application.InputBox("Please select 1 to 3" & vbLf & vbLf & _
    "1. Input" & vbLf & _
    "2. Output" & vbLf & _
    "3. P", "Enter a value", 1)
    If sIn = False Then
        Exit Sub
    Else
    With sht1
        Select Case sIn
            Case 1
                Set cpyRng = .Range([c8], [f8])  'do what you want for each case
            Case 2
                Set cpyRng = .Range([h8], [k8])
            Case 3
                Set cpyRng = .Range([m8], [p8])
            Case Else
                dummy = MsgBox("wrong input", vbCritical)
                Exit Sub
        End Select
        End With
    End If

cpyRng.Copy Destination:=sht2.Range(cpyRng.Address)

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...