Как сделать так, чтобы пользователь выбрал ячейку на другом листе, а затем вставил ее в VBA в Excel - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу выбрать диапазон ячеек на одном листе, нажать кнопку, чтобы пользователь выбрал ячейки на другом листе в другой книге, и скопировать туда скопированные ячейки.

У меня естьследующий код:

Private Sub btnCopyPaste_Click()

Dim CopyWS As Worksheet
Set CopyWS = ActiveWorkbook.Sheets("CopySheet")

Dim rngMyRange As Range

    If TypeName(Selection) = "Range" Then
        Set rngMyRange = Selection

            Dim sCell As String
            sCell = Range(Application.InputBox(Prompt:="Pick the Cell", Type:=8)).Value

        rngMyRange.Copy .Range(sCell) 'this is the bad line

    Else
        Exit Sub
    End If

End Sub

Я пытаюсь использовать Application.InputBox для получения «ячейки для вставки» от пользователя, но у меня возникают проблемы с получением соответствующей информации о ячейке обратно,Мол, расположение рабочей книги / листа.

Когда я запускаю код и при появлении запроса выбираю «ячейку для вставки», поле ввода в форме показывает это: '[WorkbookName] SheetName'! $ A $ 1 ..

Хранится ли эта информация в фоновом режиме, чтобы я мог получить к ней доступ с помощью команды, или мне придется взять эту строку и проанализировать ее?

Спасибо за помощь!

1 Ответ

0 голосов
/ 27 сентября 2019

Примерно так должно работать:

Private Sub btnCopyPaste_Click()

    Dim rngMyRange As Range, c As Range

    If TypeName(Selection) = "Range" Then
        Set rngMyRange = Selection

        On Error Resume Next 'in case user cancels
        Set c = Application.InputBox(Prompt:="Pick the Cell", Type:=8)
        On Error GoTo 0

        If Not c Is Nothing Then rngMyRange.Copy c

    End If

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