Как использовать VBA для объединения 3 ячеек с одного листа в 1 ячейку на другом листе? - PullRequest
1 голос
/ 10 июля 2020

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

='Sheet1'!C2&"|"&'Sheet1'!D2&"|CM"&'Sheet1'!H2

Мне нужно вывести 3 ячейки данных в одну ячейку в Sheet2, разделенных перерыв. Как и в следующих 96 строках. До сих пор я пытался сделать это следующим образом:

Dim SheetName As Worksheet1
    Set SheetName = Worksheets("Sheet1")
    Worksheets("Sheet2").Range("B2:B97").Formula = Worksheets(2).Range("C2:C97") & "|" & Worksheets(2).Range("D2:D97") & "|CM" & Worksheets(2).Range("H2:H70")

Worksheets(2) = "Sheet1"

Продолжать получать ошибку определения объекта. но я продолжаю получать

Ответы [ 2 ]

1 голос
/ 10 июля 2020

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

Sub try()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Range("D1:D3").Formula = "=A1 & ""|"" & B1 & ""|"" & C1"

End Sub

введите описание изображения здесь

1 голос
/ 10 июля 2020

Вот так, убедитесь, что кавычки в формуле удвоены:

Worksheets("Sheet2").Range("B2:B97").Formula = "='Sheet1'!C2&""|""&'Sheet1'!D2&""|CM""&'Sheet1'!H2"

Удалите строки

Dim SheetName As Worksheet1
Set SheetName = Worksheets("Sheet1")
...
Worksheets(2) = "Sheet1"

, поскольку они не имеют никакого смысла.

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