Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Немогу определить последнюю строку. (продолжение проблемы)

3.7K
14 апреля 2005 года
blind7
56 / / 12.01.2005
Пытаюсь определить первую чистую строку, и что то не выходит.
Имеем страницу excel с данными, на эту страницу из формы необходимо добавить ещё данные, и вот нахожусь в ступоре.

попробовал вариант из гарнаева, ругаеться на Cerrentregion.

 
Код:
Private Sub AddDannie_Click()
dim n as Integer
n= Range ("A1").CurrentRegion.Rows.Count +1
Worksheets ("База данные").Cells (n,1).Value = txtDannie.text
End Sub


Это первый вариант.

Попробовал ещё и метод которым пользовался раньше, и он почаму то тоже ругаеться на 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


ДЫк вот отказываються работать эти коды.
К тому же думаю что неправильный подход изначально ибо на странице "База данные" будут присутствовать пустые ячейки в строках, а насколько понял это не приемлемо.

Подскажите плиз куды копать?
И какой использовать метод.
425
14 апреля 2005 года
sq_deep
498 / / 18.02.2005
  1. Мне кажется неудачным описание
    Dim Range As Object
    Range — это имя класса. Назовите его как-нибудь по-другому. Может быть, после этого как читатель, так и компилятор будут меньше путаться.
  2. Worksheets ("База данные").Cells (1,1) и так уже Range, поэтому Set Range = Worksheets ("База данные").Cells (1,1).CurentRegion не совсем понятно что.
  3. К тому же в слове CurentRegion, вероятно, пропущена буква. Но даже если букву "r" добавить, в хелпе никакого CurrentRegion нет.


Если хотите найти пустую ячейку, можете воспользоваться её типом. У пустой ячейки тип равен 0:

if VarType(Cells(i,j)) = 0 then...
275
15 апреля 2005 года
pashulka
985 / / 19.09.2004
1) Range - это об'ект поэтому его можно так об'явить, хотя вариант Dim RangeCurReg As Range явно предпочтительней, правда учитывая мощность современных машин разница во времени заметна не будет.

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.
425
15 апреля 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by pashulka
...CurrentRegion Property...


Ё! Действительно есть! Спасибо за наводку. У меня есть две-три автоматизации Excel для бухгалтерш, и я всё время заставляю их вручную выбирать область обработки. Сделаю теперь лучше.

1.2K
15 апреля 2005 года
Штурман
147 / / 01.08.2003
Цитата:
Originally posted by sq_deep
Ё! Действительно есть! Спасибо за наводку. У меня есть две-три автоматизации Excel для бухгалтерш, и я всё время заставляю их вручную выбирать область обработки. Сделаю теперь лучше.



Хоть проблема и решена,позволю себе все же вмешатся. Если в проекте есть хотя бы один столбик, в котором не может быть пустых ячеек, то я предпочитаю не рисковать, и искать первую пустую строку по нему

For i = 2 To 65000
If Sheets("справочник").Cells(i, 1) = "" Then GoTo op

Next

op:

Значение i после выхода из цикла и есть номер первой пустой строки.
Даже в больших таблицах срабатывает мгновенно

275
16 апреля 2005 года
pashulka
985 / / 19.09.2004
Так как автор вопроса также имеет в своём арсенале и MS Excel 97, то полагаю будет не лишним напомнить о том, что размещая "в ячейках" рабочего листа OLEObject, например тот же CommandButton не стоит забывать об одной немаловажной детали. После щелка мышкой фокус ввода переместиться на этот элемент управления и при попытке использовать свойство CurrentRegion (и не только) может возникнуть ошибка. Для устранения этого эффекта нужно вручную установить значение свойство TakeFocusOnClick как =False
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог