Как скопировать вставить диапазон, когда один из адресов хранится в переменной? - PullRequest
0 голосов
/ 09 марта 2019

У меня есть строка кода

Range("A1:LastTableCell").Copy Worksheets("PasteSheet").Range("PasteToHere").Value 

Я получаю сообщение об ошибке, и я полагаю, что это потому, что я не могу иметь переменные в диапазоне.Например, LastTableCell содержит адрес $ D $ 5, а PasteToHere для примеров - адрес $ C $ 1.Как мне скопировать диапазон от A1 до LastTableCell, а затем вставить по адресу в PasteToHere?

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

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

Option Explicit

Sub CopyandPaste2()

'Declaring variables
Dim NonemptyRows As Long
Dim CopyLoopInt As Long
NonemptyRows = 1
CopyLoopInt = 1
Dim SelectionLoopInt As Long
SelectionLoopInt = 1
Dim TableRows As Long
TableRows = 0
Dim TableColumns As Long
TableColumns = 0
Dim LastTableCell
Dim PasteToHere

Worksheets("PasteSheet").Activate
'Need to find first blank row here
    Worksheets("PasteSheet").Range("A1").Select
    Do While ActiveCell.Value <> Empty
        NonemptyRows = NonemptyRows + 1
        ActiveCell.Offset(1, 0).Select
    Loop

'Need to find row extent of table
Worksheets("TableSheet").Activate
Worksheets("TableSheet").Range("A1").Select
Do While ActiveCell.Value <> Empty
    TableRows = TableRows + 1
    ActiveCell.Offset(1, 0).Select
    Loop

'Need to find column extent of table
Worksheets("TableSheet").Activate
Worksheets("TableSheet").Range("A1").Select
Do While ActiveCell.Value <> Empty
    TableColumns = TableColumns + 1
    ActiveCell.Offset(0, 1).Select
Loop

'Need to find where to paste to
Worksheets("PasteSheet").Activate
Worksheets("PasteSheet").Range("A1").Select
NonemptyRows = NonemptyRows - 1
ActiveCell.Offset(NonemptyRows, 0).Select
PasteToHere = ActiveCell.Address
MsgBox PasteToHere

'Need to find last and rightmost column of table
Worksheets("TableSheet").Activate
Worksheets("TableSheet").Range("A1").Select
TableRows = TableRows - 1
TableColumns = TableColumns - 1
ActiveCell.Offset(TableRows, TableColumns).Select
LastTableCell = ActiveCell.Address

'Now need to copy and paste the table data

End Sub

1 Ответ

0 голосов
/ 11 марта 2019

Range ("A1: LastTableCell") & rarr; Диапазон («A1», LastTableCell)

ИЛИ & rarr; Диапазон («A1:» и LastTableCell)

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