как отправить данные из таблицы калькулятора в следующую строку на другом листе в Excel - PullRequest
0 голосов
/ 11 октября 2019

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

У меня есть таблица, которая выполняет некоторые вычисления на основе значения кавычки на листе, называемом "один" . Мне нужно выяснить, как затем скопировать и вставить значения, введенные в этот калькулятор, в рабочую таблицу с именем "two" .

. Таблица начинается в ячейке C16 с дополнительной информацией, распространяемой по всейнесколько разных ячеек.

Имя запрашивающего лица = F10 Дата запроса = F12

Значение в кавычках = C20

Процент удержания = C22

Плата за обработку = C23

Разные расходы = C24

процент 2 = c25

Стоимость = C26

Заработанная стоимость = C27

Информация за год

Значение ячейки = D20

Оставленный процент = D22

Плата за обработку = D23

Разные расходы = D24

процент2 = D25

Стоимость = D26

Заработок = D27

В месяц Информация

Ячейка значения = E20

Процент удержания = E22

Плата за обработку = E23

Разные расходы = E24

процент 2 = E25

Стоимость = D26

Заработанная стоимость = E27

В неделю

Ячейка значения = F20

Процент удержания = F22

Обработкаплата = F23

Разные расходы = F24

процент 2 = F25

Стоимость = F26

Заработанная стоимость = F27

За день

Значение ячейки = G20

Оставленный процент = G22

Плата за обработку = G23

Разные затраты = G24

процент 2 = G25

Стоимость = G26

Заработок = G27

Поля за год, за месяц, за неделю, за день заполняются автоматически на основеформулы, делящие ячейку значения C20 котировки на 12/4/52 / 365.

У меня вопрос: кто-нибудь знает, как я могу применить макрос-кнопку, чтобы, когда этот калькулятор был завершен, я мог нажатькнопка для копирования и вставки информации в таблицу на листе «два» и удаление исходного листа «один» информация калькулятора.

DestinРабочий лист начинается с A1 на листе «два»

Ячейки назначения от листа «один» до листа «два» :

f12 -> A2

f10 -> B2

C20 -> D2

C22 -> E2

C23 -> F2

C24 -> G2

C25 -> K2

C26 -> I2

C27 -> L2

Если кто-либо может предоставить любойпомощь в этом была бы очень признательна!

Это код, который у меня есть.

Option Explicit

Sub copyRow()
Dim ws As Worksheet
Dim lRow As Long

Set ws = ActiveWorkbook.Sheets("one")

lRow = ws.Cells(Rows.Count, "A").End(xlUp).Row + 1

ws.Range("F12").Copy ws.Range("A2" & lRow)
ws.Range("F10").Copy ws.Range("B2" & lRow)
ws.Range("C20").Copy ws.Range("D2" & lRow)
ws.Range("C22").Copy ws.Range("E2" & lRow)
ws.Range("C23").Copy ws.Range("F2" & lRow)
ws.Range("C24").Copy ws.Range("G2" & lRow)
ws.Range("C25").Copy ws.Range("K2" & lRow)
ws.Range("C26").Copy ws.Range("I2" & lRow)
ws.Range("C27").Copy ws.Range("L2" & lRow)
ws.[A1].Select


End Sub

Спасибо!.

1 Ответ

0 голосов
/ 11 октября 2019

Хотя Range("A2" & lRow) может быть правильным синтаксисом, я думаю, вам понадобится Range("A" & lRow)

Более того, формулировка вашего вопроса не соответствует показанному вами коду

, еслиВы хотите сделать это в соответствии с вашей формулировкой:

Option Explicit

Sub copyRow()
    Dim ws1 As Worksheet, ws2 As Worksheet

    Set ws1 = ActiveWorkbook.Sheets("one") ' set "source" sheet
    Set ws2 = ActiveWorkbook.Sheets("two") ' set "destination" sheet

    ws2.Range("A2").Value = ws1.Range("F12").Value
    ws2.Range("B2").Value = ws1.Range("F10").Value
    ws2.Range("D2").Value = ws1.Range("C20").Value
    ws2.Range("E2:G2").Value = ws1.Range("C22:C24").Value
    ws2.Range("K2").Value = ws1.Range("C25").Value
    ws2.Range("I2").Value = ws1.Range("C26").Value
    ws2.Range("L2").Value = ws1.Range("C27").Value

    ws1.Range("F10,F12, C20, C22:C27").ClearContents ' clear contents of "source" cells worksheet "one"
End Sub

, если вы хотите сделать в соответствии с указанным кодом "намерение":

Option Explicit

Sub copyRow2()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim lRow As Long

    Set ws1 = ActiveWorkbook.Sheets("one") ' set "source" sheet
    Set ws2 = ActiveWorkbook.Sheets("two") ' set "destination" sheet

    lRow = ws2.Cells(Rows.Count, "A").End(xlUp).Row + 1 ' get destination sheet column A last not empty cell row index

    ws2.Range("A" & lRow).Value = ws1.Range("F12").Value
    ws2.Range("B" & lRow).Value = ws1.Range("F10").Value
    ws2.Range("D" & lRow).Value = ws1.Range("C20").Value
    ws2.Range("E" & lRow & ":G" & lRow).Value = ws1.Range("C22:C24").Value
    ws2.Range("K" & lRow).Value = ws1.Range("C25").Value
    ws2.Range("I" & lRow).Value = ws1.Range("C26").Value
    ws2.Range("L" & lRow).Value = ws1.Range("C27").Value

    ws1.Range("F10,F12, C20, C22:C27").ClearContents ' clear contents of "source" cells worksheet "one"
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...