Использование значения ячейки на одном листе в качестве места назначения для вставки на другом - PullRequest
0 голосов
/ 15 апреля 2019

Я новичок в VBA и пытаюсь использовать содержимое ячейки A2 в book1, sheet2 в качестве конечного листа вставки, а содержимое ячейки E2 в book1, sheet2 в качестве целевой ячейки для вставки.Содержание этих клеток может измениться.Я копирую и вставляю содержимое book1, sheet1, cell (n15).любая помощь очень ценится.Когда я нажимаю кнопку ввода на book1, sheet1, я получаю индекс ошибки времени выполнения вне диапазона, и когда я вхожу в отладку, он выделяет строку:

Workbooks ("Book2.xlsx"). Worksheets ("WeekT.Value "). Range (" NameCel.value "). PasteSpecial Paste: = xlPasteValue

````

    Public Sub Book1()
     Dim WeekT As Range
     Dim NameCel As Range
     Set WeekT = Workbooks("Book1.xlsm").Worksheets("Sheet2").Range("A2")
     Set NameCel = Workbooks("Book1.xlsm").Worksheets("Sheet2").Range("E2")
    End Sub
Private Sub Workbook_open()
         Worksheets("Sheet2").Range("A2").Value = (Me.Week.Value + "T")
         Worksheets("Sheet2").Range("C2").Value = (Me.Collegue_Name.Value)
         Worksheets("Sheet1").Range("N15").Value = ("")
        End Sub

        Private Sub Week_change()
         Worksheets("Sheet2").Range("A2").Value = (Me.Week.Value + "T")
        End Sub

        Private Sub Enter_Click()
     Set WeekT = Workbooks("Book1.xlsm").Worksheets("Sheet2").Range("A2")
     Set NameCel = Workbooks("Book1.xlsm").Worksheets("Sheet2").Range("E2")
          Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("N15").Copy
          Workbooks.Open "F:\\Folder1\Book2.xlsx"
        Workbooks("Book2.xlsx").Worksheets(WeekT).Range(NameCel).PasteSpecial Paste:=xlPasteValues
        End Sub


``````

1 Ответ

1 голос
/ 15 апреля 2019

Мне кажется, вы слишком усложнили свою задачу. Чтобы скопировать значение ячейки в другую, просто напишите:

Workbooks("destiny file").Sheets("sheet name").Cells(Row, Column).FormulaR1C1 = Workbooks("origin file").Sheets("sheet name").Cells(Row, Column).value

Это "течет" лучше, если вы используете переменные для своих рабочих книг и рабочих таблиц:

----------
Dim W1 as Workbook
Set W1 = Workbooks("origin workbook")
Dim S1 as Worksheet
Set S1 = W1.Sheets("sheet name")
'---------
Dim W2 as Workbook
Set W2 = Workbooks("destiny workbook")
Dim S2 as Worksheet
Set S2 = W2.Sheets("sheet name")
'--> Copy the value:
S2.Cells(Row, Column).FormulaR1C1 = S1.Cells(Row, Column).value

Таким образом, вам не нужно использовать Copy/Paste команды.

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