Скопируйте определенные ячейки из одной строки и вставьте в разные ячейки на другом листе.
Я видел много подобных вопросов на этом сайте, но ни один из них не имеет ответа. Не уверен почему. Наверное, это слишком просто, чтобы беспокоиться. Не для меня, хотя. Я не очень хорошо разбираюсь в VBA, и мне, вероятно, не понадобится выбирать его еще несколько лет. Надеюсь, кто-то будет любезно провести время и помочь.
У меня есть два листа в рабочей тетради. Sht1 содержит данные, организованные по строкам. Количество строк, заполняемых ежедневно, к концу проекта общее количество строк будет составлять от 300 до 400. Шт2 представляет форму документа. Большинство ячеек в этой форме содержат статическую информацию, которая не меняется от одного отчета к другому. За исключением некоторых динамических ячеек, которые должны быть заполнены из Sht1. Я распечатываю форму и подаю бумажную копию. Я мог бы вернуться и напечатать некоторые отчеты еще раз, если бумажные копии пропали или данные по какой-то причине изменились. Суть ясна - я не хочу хранить и управлять 400 файлами Word. Это просто больно.
То, что я хотел, это назначить код для командной кнопки, которая будет вызывать поле ввода. Я ввожу идентификатор строки (я думаю, что строки должны быть пронумерованы соответственно от 1 до N). Затем VBA берет данные из некоторых ячеек этой строки, скажем, C5 (когда ID=4), E5 и H5 на Sht1 и копирует их в ячейки B5, D5 и D7 на Sht2.
Очень признателен за ваше время, читая это и даже больше, если вы можете помочь. Спасибо.
1 ответ
Вот некоторый очень простой код для копирования данных из одной ячейки на Sheet1 в другую ячейку на Sheet2.
Sub Macro1()
Dim iRow As Integer
iRow = InputBox("Which row?")
Worksheets("Sht2").Cells(5, 2).Value = Worksheets("Sht1").Cells(iRow, 3).Value
Worksheets("Sht2").Cells(5, 4).Value = Worksheets("Sht1").Cells(iRow, 5).Value
Worksheets("Sht2").Cells(7, 4).Value = Worksheets("Sht1").Cells(iRow, 7).Value
End Sub
Он принимает значения из строки, указанной в Sheet1, столбцах C, E и H. Он копирует эти значения в Sheet2, ячейки B5, D5, D7 соответственно. Обратите внимание на порядок аргументов Cells(row, col)
, который противоположен ссылкам на ячейки Excel, к которым вы привыкли. Другими словами, помните, что Cells(1, 3)
на самом деле С1.
Это настолько просто, насколько я могу это сделать, но это должно направить вас в правильном направлении.