|
XlDirection.xlUp
|
|||
---|---|---|---|
#18+
для опеределения последней яцейки использую Код: vbnet 1.
по факту на листе последней является 11 ячейка, но мне выдает только 8... как корректно и 100 % определить номер строки последней пустой ячейки ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2014, 17:32 |
|
XlDirection.xlUp
|
|||
---|---|---|---|
#18+
Так Вы определяете строку последней занятой ячейки в ст. Н. У листа есть "использованный диапазон": Код: vbnet 1. 2. 3.
.row-1 это на случай, если использованный диапазон не начинается с 1 строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2014, 17:54 |
|
XlDirection.xlUp
|
|||
---|---|---|---|
#18+
последняя занятая ячейка в моем прмере и находится в столбце "Н" в 11 строке, но Код: vbnet 1.
выдает только 8. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 09:21 |
|
XlDirection.xlUp
|
|||
---|---|---|---|
#18+
Казанский, воспользовалась вашим кодом, опять же выдает 8 строку-как последнюю заполненую... Хотелось бы поподрбдней разобраться в этом.... чтоб код отрабатывал корректно, что должно соблюдаться из условий для этого.... может быть диапазон должен быть выделен какой то, или лист проверяемый должен быть активный.... Обратила внимание на то , что при первом обращении к листу, код отрабаывает корректно, но в процессе выполнения программы бывает необходимость вернуться на тот или другой лист, и вот в этот момент уже происходит, что последняя заполненая ячейка определяется не корректно... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 09:42 |
|
XlDirection.xlUp
|
|||
---|---|---|---|
#18+
Либо ExWS_ ссылается на какой-то другой лист, либо ваша программа работает асинхронно с Excel, т.е. не дожидается окончания выполнения одной команды и идет дальше. Например, дает команду заполнить ячейку Н11, потом определяет номер посл. строки, а ячейка Н11 в этот момент еще не заполнена. Посмотрите параметры подключения к внешнему объекту в вашей программной среде - может быть, там можно указать что-то типа "дождаться выполнения команды", или есть какой-нибудь флаг типа готов/не готов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 10:12 |
|
XlDirection.xlUp
|
|||
---|---|---|---|
#18+
КазанскийЛибо ExWS_ ссылается на какой-то другой лист, либо ваша программа работает асинхронно с Excel, т.е. не дожидается окончания выполнения одной команды и идет дальше. Например, дает команду заполнить ячейку Н11, потом определяет номер посл. строки, а ячейка Н11 в этот момент еще не заполнена. Посмотрите параметры подключения к внешнему объекту в вашей программной среде - может быть, там можно указать что-то типа "дождаться выполнения команды", или есть какой-нибудь флаг типа готов/не готов. Да , ExWS поменяла на то что нужно в файл ни чего не записываю, только читаю из файла вот процедура Private Sub ComboBox1_SelectedValueChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedValueChanged 'MsgBox("aa!") Dim i As Integer Dim j As Integer Dogovor_ = 0 Dim t As Integer For i = 1 To ExWB.Sheets.Count ' переход по листам книги ExWS = ExWB.Sheets(i) Dim LastRow_, lastColl_ As Long xlLastCell = ExWS.Cells.SpecialCells(11) lastCol_ = xlLastCell.Column LastRow_ = xlLastCell.Row ' на листе 2 определят 65000 а там всего 8, а на листе "Суксун" последней является- 8 строка With ExWS.UsedRange LastRow_ = .Row - 1 + .Rows.Count ' на листе 2 определят 65000 а там всего 8, а на листе "Суксун" последней является- 8 строка End With lr = LastRow_ ' вот в этот блок не заходит , когда я выбираю №договора 2008-35-0002/1, потому что он находится на 9 строке, а мне 'определяет как- 8 строк For j = 6 To lr If ExWS_.Cells(j, 2).Value() <> "" Then Dogovor_ = Dogovor_ + 1 End If ' опреация вычисления Next j Next i End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 10:41 |
|
XlDirection.xlUp
|
|||
---|---|---|---|
#18+
протестировала несколько способов на примере приложеного файла, лист "Суксун". последней заполненой ячейкой является 11 способ 1: Код: vbnet 1. 2. 3.
LastRow_=254 lastCol_=44 визуально все пусто. способ 2: Код: vbnet 1. 2. 3.
LastRow_=254 способ 3: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
LastRow_=11 способ 4 : Код: vbnet 1.
LastRow_=11 в целом все способы определяют верно, но есть моменты когда ответы сп1, сп2 отличаются от других 2...причину еще не выяснила. скорее всего где то в других колонках( сп.3 и 4 - по конкретной колонке проверка идет) есть значения, но я визуально не увидела ни какого заполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 11:07 |
|
|
start [/forum/topic.php?fid=60&fpage=45&tid=2156460]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
others: | 270ms |
total: | 386ms |
0 / 0 |