Страницы: 1
RSS
Смещение диапазона заполнения баз данных, Нужна помощь по коду в VBA
 
Добрый день! Помогите, пожалуйста, с кодом VBA (код не мой, но я вроде его освоил):
Код
Option Explicit

Private Sub cmdAdd_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("PartsData")

'''find  first empty row in database
''iRow = ws.Cells(Rows.Count, 1) _
''  .End(xlUp).Offset(1, 0).Row
'revised code to avoid problems with Excel tables in newer versions
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'check for a part number
If Trim(Me.txtPart.Value) = "" Then
  Me.txtPart.SetFocus
  MsgBox "Please enter a part number"
  Exit Sub
End If

'copy the data to the database
ws.Cells(iRow, 1).Value = Me.txtPart.Value
ws.Cells(iRow, 2).Value = Me.txtLoc.Value
ws.Cells(iRow, 3).Value = Me.txtDate.Value
ws.Cells(iRow, 4).Value = Me.txtQty.Value

'clear the data
Me.txtPart.Value = ""
Me.txtLoc.Value = ""
Me.txtDate.Value = ""
Me.txtQty.Value = ""
Me.txtPart.SetFocus

End Sub

Интересует как поправить код, чтобы заполнение данных шло не с ячейки A1, а, например, F5 (и любой другой позиции). Лист для данных исходно пустой, потом нужно добавлять новые записи с новой строки. Сейчас код подсчитывает количество строк с данными и добавляет данные на 1 строку ниже. Можно ли как-нибудь привязать операцию, что если на листе есть ячейка с "Предмет", то данные из формы заполняются под этой ячейкой, а если под этим полем есть данные то добавляет на строку ниже?

Спасибо большое!
 
Цитата
Macedon написал:
Интересует как поправить код, чтобы заполнение данных шло не с ячейки A1, а, например, F5
За это отвечает эта часть кода:
Код
ws.Cells(iRow, 1).Value

где iRow - первая пустая, а 1 - первый стобец
Цитата
Можно ли как-нибудь привязать операцию, что если на листе есть ячейка с "Предмет", то данные из формы заполняются под этой ячейкой, а если под этим полем есть данные то добавляет на строку ниже?
именно так код вроде должен работать
Изменено: panix1111 - 04.08.2017 13:09:26
Мы в Екселе не работаем, мы в нём живём!
 
panix1111,это я знаю, но как именно преобразовать IRow,. чтобы заполнялись строки последовательно - для меня загадка. При этом фиксировать IRow нельзя, так как пропадет функционал=(
Страницы: 1
Наверх