Excel VBA перемещает значения с одного листа на другой - PullRequest
0 голосов
/ 19 ноября 2018

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

Теперь я использую VBA для достижения этой цели: присваиваем значение из ячейки «число» number = data.Cells(500, "E").Value, а затем присваиваем «номер» другой ячейке result.Cells(3, "D") = number.Мне нужно сделать это с каждой таблицей, и теперь я просто использую номер строки и букву столбца, чтобы определить значение.Вот пример того, как выглядят мои таблицы:

table

И мой код VBA:

number_e = data.Cells(80, "E").Value
result.Cells(8, "D") = number_e

number_j = data.Cells(80, "L").Value
result.Cells(9, "D") = number_j

number_n = data.Cells(80, "P").Value
result.Cells(10, "D") = number_n

number_e = data.Cells(500, "E").Value
result.Cells(3, "D") = number_e

number_j = data.Cells(500, "J").Value
result.Cells(4, "D") = number_j

number_n = data.Cells(500, "N").Value
result.Cells(5, "D") = number_n

<...>

number_e = data.Cells(4385, "E").Value
result.Cells(242, "D") = number_e

number_j = data.Cells(4385, "L").Value
result.Cells(243, "D") = number_j

number_n = data.Cells(4385, "P").Value
result.Cells(244, "D") = number_n

В некоторых таблицах желаемыйзначения находятся в разных столбцах.

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

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

Спасибо за любые предложения,

1 Ответ

0 голосов
/ 19 ноября 2018
' Checking number of records

rCount = data.Cells(.Rows.Count, 1).Row

' Copying the data

for i=1 to rCount
    result.Cells(Cells(.Rows.Count,4).End(xlUp).row+1,4).value = data.cells(i,5).Value
    result.Cells(Cells(.Rows.Count,4).End(xlUp).row+1,4).value = data.cells(i,10).Value
    result.Cells(Cells(.Rows.Count,4).End(xlUp).row+1,4).value = data.cells(i,14).Value
next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...