Страница: 1 |
Страница: 1 |
Вопрос: Почему шестая строка?
Добавлено: 06.04.05 23:40
Автор вопроса: Anry Deriabine
Есть немного кода (кто-то здесь подсказал)
Private Sub But_Click()
Dim c
Dim n
n = 0
For Each c In ActiveSheet.Columns(7).Cells
If (Not (IsEmpty(c.Value))) Then
If (IsNumeric(c.Value)) Then
If (Not (c.Value = 0)) Then
n = n + 1
End If
End If
End If
Next c
Worksheets("Лист").Cells(n + 1, 7) = Box.Text
Worksheets("Лист").Cells(n + 1, 7).NumberFormat = "#,##0.00$"
Worksheets("Лист").Cells(n + 1, 8) = Now
Form.Hide
End Sub
При нажатии на кнопку должно вносится значение из TextBox'а в последнюю пустую ячейку 7 столбца.
Если столбец пустой, то соответственно в первуя ячейку.
А у меня почему-то столбец начинается с шестой ячейки.
Т.е. при пустом столбце первое значение вносится в G6.
Как с этим бороться?
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #1
Добавлено: 06.04.05 23:45
с этой штукой не реботал, но по-моему похожие глюки вылазят когда нумерация чего-то начинается с нуля а не с единицы
Номер ответа: 2
Автор ответа:
ActiveX
Вопросов: 0
Ответов: 73
Профиль | | #2
Добавлено: 07.04.05 16:05
В сети очень много примеров определения последней ячейки, в том числе и без перебора всех 65536 ячеек в столбце.
А самое главное, что Ваш код, то это не определение последней ячейки в столбце, а подсчёт количества числовых значений, отличных от нуля, а это значит, что в Вашем столбце "G" имеется пять таких значений. При этом они могут располагаться в любых ячейках этого столбца.
Номер ответа: 3
Автор ответа:
Anry Deriabine
Вопросов: 14
Ответов: 29
Профиль | | #3
Добавлено: 07.04.05 22:12
Точно! Как я сразу-то повнимательней не поглядел.
Вот, что значит спешка!
Спасибо.
To Morpheus
Перебор с нуля, чтобы в первой строке вставлял значение.
Номер ответа: 4
Автор ответа:
ActiveX
Вопросов: 0
Ответов: 73
Профиль | | #4
Добавлено: 07.04.05 22:39
- Festina lente
- На самом деле перебор начинается с самой первой ячейки столбца "G", а вот начальное значение "счётчика" действительно ноль, хотя строку n = 0 можно убрать, без всякого ущерба функциональности кода.