Private Sub AddDannie_Click()
dim n as Integer
n= Range ("A1").CurrentRegion.Rows.Count +1
Worksheets ("База данные").Cells (n,1).Value = txtDannie.text
End Sub
Немогу определить последнюю строку. (продолжение проблемы)
Имеем страницу excel с данными, на эту страницу из формы необходимо добавить ещё данные, и вот нахожусь в ступоре.
попробовал вариант из гарнаева, ругаеться на Cerrentregion.
Код:
Это первый вариант.
Попробовал ещё и метод которым пользовался раньше, и он почаму то тоже ругаеться на CurrentRegion а именно (писалось под Excel 95)
Код:
Sub AddDannie()
Dim Range As Object
Dim NewRow, i As Integer
Set Range = Worksheets ("База данные").Cells (1,1).CurentRegion
With DialogSheets ("Добавление записи")
Data(1)= .EditBoxes(1).Text
.......
Data(5)= .EditBoxes(5).Text
End With
NewRow=Range.Rows.Count +1
For i=1 to 5
WorkSheets ("База данные").Cells(NewRow,i).Value = Data(i)
Next i
End Sub
Dim Range As Object
Dim NewRow, i As Integer
Set Range = Worksheets ("База данные").Cells (1,1).CurentRegion
With DialogSheets ("Добавление записи")
Data(1)= .EditBoxes(1).Text
.......
Data(5)= .EditBoxes(5).Text
End With
NewRow=Range.Rows.Count +1
For i=1 to 5
WorkSheets ("База данные").Cells(NewRow,i).Value = Data(i)
Next i
End Sub
ДЫк вот отказываються работать эти коды.
К тому же думаю что неправильный подход изначально ибо на странице "База данные" будут присутствовать пустые ячейки в строках, а насколько понял это не приемлемо.
Подскажите плиз куды копать?
И какой использовать метод.
- Мне кажется неудачным описание
Dim Range As Object
Range — это имя класса. Назовите его как-нибудь по-другому. Может быть, после этого как читатель, так и компилятор будут меньше путаться. - Worksheets ("База данные").Cells (1,1) и так уже Range, поэтому Set Range = Worksheets ("База данные").Cells (1,1).CurentRegion не совсем понятно что.
- К тому же в слове CurentRegion, вероятно, пропущена буква. Но даже если букву "r" добавить, в хелпе никакого CurrentRegion нет.
Если хотите найти пустую ячейку, можете воспользоваться её типом. У пустой ячейки тип равен 0:
if VarType(Cells(i,j)) = 0 then...
3) Утверждение, что свойства CurrentRegion в help нет, оставить без внимание никак нельзя, поэтому опубликую часть help
[SIZE=4]CurrentRegion Property[/SIZE]
Returns a Range object that represents the current region. The current region is a range bounded by any combination of blank rows and blank columns. Read-only.
Цитата:
Originally posted by pashulka
...CurrentRegion Property...
...CurrentRegion Property...
Ё! Действительно есть! Спасибо за наводку. У меня есть две-три автоматизации Excel для бухгалтерш, и я всё время заставляю их вручную выбирать область обработки. Сделаю теперь лучше.
Цитата:
Originally posted by sq_deep
Ё! Действительно есть! Спасибо за наводку. У меня есть две-три автоматизации Excel для бухгалтерш, и я всё время заставляю их вручную выбирать область обработки. Сделаю теперь лучше.
Ё! Действительно есть! Спасибо за наводку. У меня есть две-три автоматизации Excel для бухгалтерш, и я всё время заставляю их вручную выбирать область обработки. Сделаю теперь лучше.
Хоть проблема и решена,позволю себе все же вмешатся. Если в проекте есть хотя бы один столбик, в котором не может быть пустых ячеек, то я предпочитаю не рисковать, и искать первую пустую строку по нему
For i = 2 To 65000
If Sheets("справочник").Cells(i, 1) = "" Then GoTo op
Next
op:
Значение i после выхода из цикла и есть номер первой пустой строки.
Даже в больших таблицах срабатывает мгновенно
Так как автор вопроса также имеет в своём арсенале и MS Excel 97, то полагаю будет не лишним напомнить о том, что размещая "в ячейках" рабочего листа OLEObject, например тот же CommandButton не стоит забывать об одной немаловажной детали. После щелка мышкой фокус ввода переместиться на этот элемент управления и при попытке использовать свойство CurrentRegion (и не только) может возникнуть ошибка. Для устранения этого эффекта нужно вручную установить значение свойство TakeFocusOnClick как =False