Как скопировать вставку в определенную ячейку, меняя переменную каждую неделю (не в коде) - PullRequest
0 голосов
/ 28 января 2020

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

Каждую неделю имеет целевое число от 1 до 52.

Я пытался создать VBA скопируйте вставить в следующую свободную колонку, но я понял, что это может привести к ошибке, если вы не обновите ее должным образом.

Итак, я подумал, знаете ли вы код VBA, который позволяет мне решить в листе Excel, где макрос должен копировать? Например, я выбрал правильный номер на неделю в листе Excel и затем запустил макрос, чтобы скопировать его в соответствующий столбец на каждом указанном листе.

Это код, который копируется в следующий доступный столбец:

Sub copy()
'Meeting

Application.ScreenUpdating = False
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet

Set copySheet = Worksheets("Weekly")
Set pasteSheet = Worksheets("Meeting 2020")

copySheet.Range("B6:B14").Copy
pasteSheet.Cells(13, 15).End(xlToLeft).Offset(0, 1).PasteSpecial xlPasteFormulas


Application.CutCopyMode = False

Application.ScreenUpdating = True

Application.ScreenUpdating = False
'proposal

Set copySheet = Worksheets("Weekly")
Set pasteSheet = Worksheets("Proposal 2020")

copySheet.Range("G6:G14").Copy
pasteSheet.Cells(13, 15).End(xlToLeft).Offset(0, 1).PasteSpecial xlPasteFormulas


Application.ScreenUpdating = False

'Pipe

Set copySheet = Worksheets("Weekly")
Set pasteSheet = Worksheets("PIPE 2020")

copySheet.Range("K6:K14").Copy
pasteSheet.Cells(13, 15).End(xlToLeft).Offset(0, 1).PasteSpecial xlPasteFormulas


Application.CutCopyMode = False

Application.ScreenUpdating = True

'date
Application.ScreenUpdating = False


Set copySheet = Worksheets("Weekly")
Set pasteSheet = Worksheets(" date 2020")

copySheet.Range("J6:J13").Copy
pasteSheet.Cells(13, 15).End(xlToLeft).Offset(0, 1).PasteSpecial xlPasteFormulas


Application.CutCopyMode = False

Application.ScreenUpdating = True


End Sub

1 Ответ

0 голосов
/ 28 января 2020

Для его создания необходимо выполнить несколько шагов. Первый: объявить переменную, в которой хранится номер недели ( VBA Преобразовать дату в номер недели )

Второй: использовать функцию поиска или функцию al oop, чтобы найти этот номер в диапазоне.

Третье: извлечь номер столбца из этой позиции.

Четвертое: использовать al oop для циклического перебора всех листов и вставить информацию в этом столбце.

Это не простое решение для копирования / вставки, но конкретные шаги.

Удачи!

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