Обращаюсь к вам за помощью в упрощении макроса, писанного долго и нудно, зато своими руками, с использованием подсказок здесь и чуть-чуть просто в интернете. Вижу, что макрос вышел "тяжёлый", вижу, что можно его сделать красивым, вижу, что это цикл. НО! Заплутала в синтаксисе... Нид хелп...
Собственно, сам текст макроса, нуждающийся в наведении лоска. Там имена ячеек последовательны, а столбцы - через один. Вот в этой части прошу помочь. Как всё это поименовать так, чтобы было коротко и красиво?
Sub DataEntryForm()
Dim Row As Long, intI as integer
Row = formaM.Cells(2, 4) + 2
For intI=1 to 13
formaM.Range("Rate" & intI).Copy
MonitoringM.Cells(Row, 10+intI*2).PasteSpecial Paste:=xlPasteValues
formaM.Range("Effic" & intI).Copy
MonitoringM.Cells(Row, 11 + intI*2).PasteSpecial Paste:=xlPasteValues
Next intI
formaM.Range("I9:J14").Copy Destination:=formaM.Range("B9")
formaM.Range("I16:J17").Copy Destination:=formaM.Range("B16")
formaM.Range("I19:J20").Copy Destination:=formaM.Range("B19")
formaM.Range("I22:J23").Copy Destination:=formaM.Range("B22")
formaM.Range("I25:J25").Copy Destination:=formaM.Range("B25")
End Sub
Sub DataEntryForm()
Dim i&, j&, lRow&
ReDim arr(25)
With formaM
For i = 0 To 25 Step 2
j = j + 1
arr(i) = .Range("rate" & j)
arr(i + 1) = .Range("Effic" & j)
Next i
lRow = .Cells(2, 4) + 2
MonitoringM.Range("l" & lRow).Resize(, 26) = arr
.Range("I9:J14").Copy .Range("B9")
.Range("I16:J17").Copy .Range("B16")
.Range("I19:J20").Copy .Range("B19")
.Range("I22:J23").Copy .Range("B22")
.Range("I25:J25").Copy .Range("B25")
End With
End Sub
И в какую строку оно будет писаться? В новую? Так не надо. Надо как раз в имеющуюся) Именно для этого и есть на листе с формой ячейка, где лежит номер нужной строки)
macovea написал: А вот это - массив? Не очень поняла...
Это не массив. Я честно не увидел №нужной строки. увидел поиск строки на листе видимом. Я просто никогда так не делаю, т.е не определяю в одном листе строку. что бы ее заполнить в другом. Нужно затереть последнюю строку пожалуйста:
А что это? Я вижу ряд значений, набираемых из формы, друг за другом, которые после вставляются в другой лист. Неправильно вижу?
Цитата
Nordheim написал: Я честно не увидел №нужной строки. увидел поиск строки на листе видимом.
Если смотрели приложенный файл - то он спрятан под кнопкой. Ибо для рядовых пользователей это информация совершенно излишняя. Это для меня и ещё пары девочек, более-менее разбирающихся в Экселе))
Если у меня воспитатели будут ещё номера строк руками вводить - они просто отдадут это всё мне))) И буду я вручную сличать фамилии в поисках нужной)) Впрочем, это уже лирика. Важен первый вопрос, на остальное можно не отвечать. Хочу разобраться)