powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление лишних строк
51 сообщений из 51, показаны все 3 страниц
Удаление лишних строк
    #37456621
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго утра! Пытаюсь удалить лишние строки где в трех разных столбцах отсутствуют записи.
Код: plaintext
1.
2.
3.
Dim Rng As Range
Set Rng = Range("A5:A5000").SpecialCells(xlCellTypeBlanks)
Rng.EntireRow.Delete
Но здесь указывается только один столбец, а несколько можно указать?
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456636
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то типа такого (удаляем строки в диапазоне, у которых первая, третья и пятая ячейка - пустые) :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Dim oRng As Range, nRow As Long
    Set oRng = Range("A5:E20")

    nRow = oRng.Rows.Count
    With oRng
        While nRow >  0 
            If IsEmpty(.Cells(nRow,  1 )) And IsEmpty(.Cells(nRow,  3 )) And IsEmpty(.Cells(nRow,  5 )) Then
                oRng.Rows(nRow).Delete
            Else
                nRow = nRow -  1 
            End If
        Wend
    End With
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456646
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

У меня таблица очень большая. Здесь строки удаляются перебором. Очень долго.
А нельзя как-нибудь разом всё удалить?
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456652
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Очень большая" в любом случае не более миллиона. Вы пробовали запускать приведенный код или нет?
Заодно сразу скажу, что неплохо бы для начала попробовать использовать управление свойствами Application.ScreenUpdating и Application.Calculation, если у вас происходит "торможение".

С другой стороны, ваша проблема (именно с точки зрения ускорения) может быть решена радикально другим образом - использованием коннекта ADODB с запросом "UPDATE...SET...". но для этого надо бы ориентироваться на пример ваших реальных данных.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456665
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

Конечно, я запустил код. Медленно
Поставил Application.ScreenUpdating = False, быстрее не стало.
Мне нужно обработать порядка 15 000 строк.
Таблица проста (прил.), там должны удалиться 3 и 8 строка. Ключевые столбцы обведены.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456677
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pal_bil, в модуль листа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub www()
    Dim i&
    With Me.UsedRange
        For i =  2  To  8  Step  3 
            .AutoFilter Field:=i, Criteria1:="="
        Next
        .Offset( 1 ).SpecialCells( 12 ).EntireRow.Delete
    End With
    Me.AutoFilterMode =  0 
End Sub
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456679
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

Таблица в приложении просто пример, в оригинале она больше и удаляемые строки могут время от времени разниться.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456698
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нихрена не понял...
Вы точно не модифицировали код "под себя"?
У меня на 35000 строк выполняет удаление ~ за 10 -5 сек...

Запустите в примере на Листе2 макрос TEST()
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456714
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pal_bilkuklp,
Таблица в приложении просто пример, в оригинале она больше
И что?
pal_bilи удаляемые строки могут время от времени разниться.Что значит "разниться"? Они и в примере разные.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456719
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, не совсем так. Попробуйте:
MsgBox Time - Time0
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456727
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

И что? проверил - =0,0000115740740740389...
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456748
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, такая конструкция правильней:
Time0 = Timer

MsgBox Timer - Time0
Попробуйте.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456751
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, да тормознул... Думал (и подразумевал) одно, а прописал другое
Пробовать и не буду - именно это и имелось ввиду.
Ну, это простительно - утро на дворе, а я еще не спал
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456755
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

Да, у вас быстро удалились. Но это наверно из за того, что удаляемых строк мало.
А у меня их очень много. Из 15 000 строк нужными оказываются где около 100 строк, остальные удаляются.
Интервалы нужны потому что набор записей может быть всегда разным.
Данные экспортируются вот таким вот образом.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456758
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тем не менее Ваш код работает быстро.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456792
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще такой код, которые работает быстрее
Код: plaintext
1.
2.
3.
4.
5.
LastRow = ActiveSheet.UsedRange.Row -  1  + ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = LastRow To  1  Step - 1 
If Application.CountA(Rows(r)) =  0  Then Rows(r).Delete
Next r
но он удаляет только все пустые строки. Можно ли сюда прописать мои условия?
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456795
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, у Вас ошибка в коде. Пример с исправленым кодом. Уже далеко не так быстро. И свой туда добавил для сравнения.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456818
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pal_bil, можно, но быстрей не будет. Сравнивайте. Быстрей либо через ADO, либо массивом.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37456952
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

На ADO
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Public Function ADO_R_Dmitry(ByVal strSql$, ByVal FilePath$, ByVal OutputRange As Range, _
ByVal FieldsName As Boolean, ByVal OutputFieldsName As Boolean)

Dim sCon As String, FieldName As String
Dim rs As Object, cn  As Object

Set rs = CreateObject("ADODB.Recordset")
Set cn = CreateObject("ADODB.Connection")
If FieldsName Then FieldName = "Yes" Else FieldName = "No"
Select Case CLng(Split(Application.Version, ".")( 0 ))
    Case Is <  12 
        sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath _
          & ";Extended Properties=""Excel 8.0;HDR=" & FieldName & ";IMEX=1"";"
    Case Is >=  12 
        sCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
        & ";Extended Properties=""Excel 12.0;HDR=" & FieldName & ";IMEX=1"";"
End Select

cn.Open sCon
If Not cn.State =  1  Then Exit Function
Set rs = cn.Execute(strSql)
If Not FieldsName Then OutputFieldsName = False
 If OutputFieldsName Then
    For i =  0  To rs.Fields.Count -  1 
    OutputRange.Offset( 0 , i) = rs.Fields(i).Name
    Next
    Set OutputRange = OutputRange.Offset( 1 ,  0 )
 End If
OutputRange.CopyFromRecordset rs
rs.Close:  cn.Close
Set cn = Nothing: Set rs = Nothing
End Function


для вашего случая, данные на листе "Лист1", начиная с ячейки А1
данные выводяться на лист 2 (должен быть создан)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub Test()
'пример использования
StrSQL2="SELECT * FROM [Лист1$]" _
& " WHERE F2 <> null  AND F5 <>null  AND F8 <>null "

Call ADO_R_Dmitry(strSql2, ThisWorkbook.FullName, Sheets( 2 ).[a1], False, False)
Sheets( 2 ).Activate
End Sub
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457068
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

Что означает For i = 2 To 8 Step 3?
У меня удаляются вместе с ненужными и нужные строки.
В оригинальном файле мне нужно оставить строки, где есть значения в любом из столбцов A, H и О - 1, 8 и 15 соответственно.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457096
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё, разобрался. Всем спасибо за ответы. Пригодился вариант, предложенный kuklp. Он проще и главное быстрее.
В этом участке кода
Код: plaintext
1.
For i =  2  To  8  Step  3 
я убрал Step 3, и все вышло так как мне нужно ))
Благодарю всех еще раз!
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457153
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pal_bil, так удалит только те строки, в которых со 2 по 8 столбец пусто. А я исходил из Вашего примера. Там при Вашем подходе ничего не удалится.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457161
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще. При усредненном подходе(разные к-ва нужных и ненужных) вариант Димы(R Dmitry) ИМХО должен быть быстрей моего.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457183
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

Да, вы правы, там ничего не удалилось бы.
Просто в пустых строках у меня должны были стоять некоторые формулы для расчета, но я их вставил макросом после удаления. Это не важно.
А вот вариант R Dmitry может и быстрее, разницу сложно на глаз уловить. За то у вас писанины меньше )
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457277
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

Не подскажете как таким же методом удалить все строки, в которых столбец G не содержит значение "ИСТИНА"? То есть "ИСТИНА" оставить, а остальное удалить
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457311
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pal_bil,

основная писанина заложена в функции, а писанины остается написать SQL запрос :)
так что на счет писанины, я не совсем согласен. :)
тем более, что уже все написано ;))
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457329
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
R Dmitry,

Конечно, не смею с вами спорить.
Но видите ли, в вашем примере задействуются два листа, что мне не совсем удобно. Хотелось бы все в одном
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457357
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дим, ты всеж подумай, чтоб вместо кейса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Select Case CLng(Split(Application.Version, ".")( 0 ))
    Case Is <  12 
        sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath _
          & ";Extended Properties=""Excel 8.0;HDR=" & FieldName & ";IMEX=1"";"
    Case Is >=  12 
        sCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
        & ";Extended Properties=""Excel 12.0;HDR=" & FieldName & ";IMEX=1"";"
End Select
оставить:
Код: plaintext
1.
        sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath _
          & ";Extended Properties=""Excel 8.0;HDR=" & FieldName & ";IMEX=1"";"
Так быстрей. Только надо попросить кого-то, у кого стоит только одна версия офиса 7 или 10.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457382
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pal_bilkuklp,
Не подскажете как таким же методом удалить все строки, в которых столбец G не содержит значение "ИСТИНА"? То есть "ИСТИНА" оставить, а остальное удалить
Код: plaintext
1.
2.
3.
4.
    With Me.UsedRange
            .AutoFilter  7 , "<>ИСТИНА"
        .Offset( 1 ).SpecialCells( 12 ).EntireRow.Delete
    End With
    Me.AutoFilterMode =  0 
P.C. Код R Dmitry можно переделать, чтоб выводил на тот же лист.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457415
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

У меня удалились все строки.
Вы не подскажете что означают значения offset и specialcells?
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457458
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pal_bil, значит во всех строках в столбце G значение было не ИСТИНА.
offset значит сдвиг(в моем примере - чтоб не удалить первую стороку, она всегда будет видимой), specialcells(12) - только видимые ячейки.
Но в дальнейшем старайтесь пользоваться встроеной справкой. Проводить начальный курс информатики онлайн и мне неинтересно - и модераторам это не понравится.
Если что-то не понятно, или не так работает, старайтесь выкладывать пример в рамках правил. Тогда отвечающим будет легче Вас понять и помочь Вам.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457498
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To kuklp,

Сергей привет, вот откопал специально по этому поводу

http://support.microsoft.com/kb/257819/ru

В самом низу
авторОграничения Excel
При использовании Excel в качестве источника данных связан с внутренней ограничения книги и листы Excel. Они включают, но не не более:

* Размер листа: 65536 строк и 256 столбцов
* Ячейка содержимое (текст): 32 767 символам
* Листов в книге: ограничено объемом доступной память
* Имена в книге: ограничено объемом доступной памяти


to pal_bil , для этого достаточно указать в функции вместо второго листа первый
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457507
pal_bil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

Да, конечно. Прошу прощения за назойливость.

При удалении некоторых строк динамически меняются значения истины на ложь или обратно. Думаю из за этого всё.
Чтобы их не удалять, а просто скрывать, я поставил вместо .EntireRow.Delete - .EntireRow.Hidden = true
Но выходит ошибка "Нельзя установить свойство Hidden класса Range".
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457612
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, Дим. Ну так обрати внимание:"При использовании Excel в качестве источника данных связан с внутренней ограничения книги и листы Excel . А В 2010 какие ограничения?
Ты бы попробовал, дружище. А уж потом, с полной уверенностью, послал бы меня:-)
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457679
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pal_bil, можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    With Me.UsedRange
        For i =  2  To  8 
            .AutoFilter Field:=i, Criteria1:="=" ' Тут Ваши хотелки. 
        Next
        Set r = .Offset( 1 ).SpecialCells( 12 )
    End With
    Me.AutoFilterMode =  0 
    r.EntireRow.Delete
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457693
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp, Серега, ну я тоже не просто так утверждаю , мало того он ограничен в 8 версии объемом (в кб памяти), и проверил я это давно, правда в msdn об этом я ни где не нашел

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Public Function ADO_R_Dmitry(ByVal strSql$, ByVal FilePath$, ByVal OutputRange As Range, _
ByVal FieldsName As Boolean, ByVal OutputFieldsName As Boolean, ByVal version As Long)

Dim sCon As String, FieldName As String
Dim rs As Object, cn  As Object

Set rs = CreateObject("ADODB.Recordset")
Set cn = CreateObject("ADODB.Connection")
If FieldsName Then FieldName = "Yes" Else FieldName = "No"
Select Case version 'CLng(Split(Application.version, ".")(0))
    Case Is =  8 
        sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath _
          & ";Extended Properties=""Excel 8.0;HDR=" & FieldName & ";IMEX=1"";"
    Case Is =  12 
        sCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
        & ";Extended Properties=""Excel 12.0;HDR=" & FieldName & ";IMEX=1"";"
End Select

cn.Open sCon
If Not cn.State =  1  Then Exit Function
Set rs = cn.Execute(strSql)
If Not FieldsName Then OutputFieldsName = False
 If OutputFieldsName Then
    For i =  0  To rs.Fields.Count -  1 
    OutputRange.Offset( 0 , i) = rs.Fields(i).Name
    Next
    Set OutputRange = OutputRange.Offset( 1 ,  0 )
 End If
OutputRange.CopyFromRecordset rs
rs.Close:  cn.Close
Set cn = Nothing: Set rs = Nothing
End Function
Sub zapolnim()
Range("a1:c100000").Value = Range("a1:c1").Value
strSql2 = "SELECT * FROM [Лист1$]"
Call ADO_R_Dmitry(strSql2, ThisWorkbook.FullName, Sheets( 2 ).[a1], False, False,  8 )
Call ADO_R_Dmitry(strSql2, ThisWorkbook.FullName, Sheets( 3 ).[a1], False, False,  12 )
End Sub
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457707
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да забыл, внеси a1:c1 чего нибудь для заполнения :)
Хотел давно тебе отписаться по этому поводу, но все руки не доходили
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457714
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дим, молчу...:-)
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457756
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,
Код: plaintext
1.
Extended Properties=""Excel  8 . 0 ;MaxBufferSize= 4096 ;HDR=" & FieldName & ";IMEX= 1 "";"
еще можно увеличить буфер, но траблы тоже бывают если массив данных большой то не понятно как он их обрубает
иногда влазят и все данные, иногда нет , похоже зависит от входного объема данных,
Может кто больше работал с 8 версией с ADO подскажет какие косяки могут быть?
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457828
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
R Dmitry,
так я и работал. Только я тебе уже писал, когда. Все забыл. Сегодня раскопал свои работы 10-летней давности. Сам удивляюсь. Еще и под VB5,6 посмотрел свои ваяния. Сейчас пишу гораздо хуже, обленился, отупел. Во всем нужна сноровка, закалка, тренировка...
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457851
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, а ведь реализованный у меня недавно 11339025 вариант должен, по идее, быть независим от версии Офиса
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub ODBCGetData(ByVal cnnOpen As String, ByVal rstOpen As String, ByRef oDestRange As Object)
    Dim cnn As adodb.Connection
    Set cnn = CreateObject("adodb.Connection")
    cnn.Open cnnOpen
    Dim rst As adodb.Recordset
    Set rst = CreateObject("adodb.Recordset")
    rst.Open rstOpen, cnn
    oDestRange.CopyFromRecordset rst
    rst.Close
    cnn.Close
End Sub
Использование, типа:
Код: plaintext
1.
2.
3.
    ODBCGetData _
    "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & ActiveWorkbook.Path & "\" & Activeworkbook.Name, _
    "SELECT * FROM [" & ActiveSheet.Name & "]", _
    ActiveSheet.Cells( 2 ,  1 )
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457887
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, "независим от версии" слишком сильно. adodb, если память не изменяет, как раз во времена 2003 появилось. Но даже если с 2003 включительно - это уже хорошо. Хотя я еще тогда отказался от него в пользу ADO из-за скорости. Надо тестить.
Тогда у меня стояла Винда ME. И хрюшка тоже казалась жутко тормозной:-) А сейчас упираюсь переходить на семерку. На хрюшке комфортно и привычно, как и в офисе 2003.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457959
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp,

Не-е, и в 2000 и в XP Офисах это все было. Наоборот, с 2003 (сервера) M$ перестали отдельно выпускать MDAC.
Я же имел в виду то, что имел , как раз с точки зрения 2003-2007-2010.
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37457984
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMkuklp,

Не-е, и в 2000 и в XP Офисах это все было. Наоборот, с 2003 (сервера) M$ перестали отдельно выпускать MDAC.
Я же имел в виду то, что имел , как раз с точки зрения 2003-2007-2010.

А что тут проверять .........
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub test()
Range("a1:c100000").Value = Array( 1 ,  2 ,  3 )
   ODBCGetData _
    "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name, _
    "SELECT * FROM [" & ActiveSheet.Name & "$]", _
   Sheets( 2 ).Cells( 1 ,  1 )
   Sheets( 2 ).Activate
  MsgBox "К-во строк :  " & Cells(Rows.Count,  1 ).End(xlUp).Row
End Sub

[" & ActiveSheet.Name & "$]"
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37458009
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
R Dmitry,

Да, правил прямо в посте, так что просто стер и не заметил...
А, еще заметил - если использовать позднее связывание, то использовать
Код: plaintext
1.
    Dim cnn As Object
    Dim rst As Object
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37458024
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

Обидно, что все драйвера старых версий ограничены в объеме обрабатываемых данных :(
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37458090
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это как сказать...
Вернее, тут сказать можно только одно - инструмент выбран неправильно. Если объемы данных возросли - так надо подбирать соответствующий инструмент. Электронные таблицы -> настольные СУБД -> клиент-серверные приложения.
Все только упирается либо в вышестоящих (по определению - знающих меньше), либо в юзеров (по определению - не желающих переучиваться). С другой стороны, если разработчик - альтруист, то он может и перепишет приложение так, что никто и не заметит, что теперь данные уже крутятся на SQL-сервере
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37458112
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

целиком и полностью согласен. Просто ёксель очень универсален и удобен, вот народ и пытается сделать из него и БД и Report,
Даже у себя на работе поражаюсь иногда таким вещам. То у меня у гл.бх так 12 файлов в год листов по 30 , пытался ей как то мозг вправить..... увы бесполезно :((
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37458126
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так тогда переход к формам ввода, ADO в выборках, использованию, скажем, Word в качестве выходных отчетов - и приложение на Excel потом с минимальными проблемами переносится на следующий уровень...
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37458175
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,
пошел по другому пути, все управленческое что имеет более или менее четкую структуру данных переложил на PALO, формы ввода все на WEB (VPN + Local),подгрузка данных из Oracle + Web+ 1c с помощью ETL, вся отчетность на кубах Palo в ёксель подгружается, и там уже срезы диаграммы и т.д
...
Рейтинг: 0 / 0
Удаление лишних строк
    #37458238
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э-э-э, батенька...
Я с госслужбы ушел уж лет шесть тому, а даже "средний бизнес" до наших лесов будет еще лет 5-10 добираться...
Так что принципиально я и такое могу писАть, а практически - смысла нет.
...
Рейтинг: 0 / 0
51 сообщений из 51, показаны все 3 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление лишних строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]