Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов / 9 сообщений из 9, страница 1 из 1
15.11.2006, 14:59:38
    #34130499
ого
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
ЛЮДИ!!! Пожалуйста, помогите найти ошибку! Может она в ДНК? Почему не работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
   Sub Temp()
    On Error Resume Next
    Dim i&, lngChars&, lngRow&, lngCol&, lngLastRow&, lngLastCol&
    Dim strTemp$, lngCharactersAmount&
    lngLastRow =  0 : lngLastCol =  0 
    strTemp = "": lngCharactersAmount =  0 
    For j =  1  To Sheets.Count
        Sheets(j).Select
        lngLastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
        lngLastCol = Cells.SpecialCells(xlCellTypeLastCell).Column
        For lngRow =  1  To lngLastRow
            For lngCol =  1  To lngLastCol
                strTemp = Cells(lngRow, lngCol).Text
                lngChars =  0 
                For i =  1  To Len(strTemp)
                     If (Asc(Mid(strTemp, i,  1 )) <>  60 ) And (Asc(Mid(strTemp, i,  1 )) <>  62 ) And (Asc(Mid(strTemp, i,  1 )) <>  59 ) And (Asc(Mid(strTemp, i,  1 )) <>  58 ) And (Asc(Mid(strTemp, i,  1 )) <>  46 ) And (Asc(Mid(strTemp, i,  1 )) <>  44 ) And (Asc(Mid(strTemp, i,  1 )) <>  33 ) And (Asc(Mid(strTemp, i,  1 )) <>  63 ) And (Asc(Mid(strTemp, i,  1 )) <>  64 ) And (Asc(Mid(strTemp, i,  1 )) <>  185 ) And (Asc(Mid(strTemp, i,  1 )) <>  40 ) And (Asc(Mid(strTemp, i,  1 )) <>  41 ) And (Asc(Mid(strTemp, i,  1 )) <>  45 ) And (Asc(Mid(strTemp, i,  1 )) <>  43 ) And (Asc(Mid(strTemp, i,  1 )) <>  32 ) Then lngChars = lngChars +  1 
                Next
                lngCharactersAmount = lngCharactersAmount + lngChars
            Next
        Next
    Next
    MsgBox lngCharactersAmount
End Sub
Когда вставляю какой-нибудь символ на последнем листе большого файла (порядка 16000 символов), он каждый вставленный с момента открытия книги символ считает за 2. Может, я просто чего-то не знаю? а? На маленьких файлах (десятки символов) все работает! ПОЖАЛУЙСТА!!! А то у меня мозг закипит!
PS всякие пробелы и т.д. не учитываются, но не все служебные символы...
...
Рейтинг: 0 / 0
15.11.2006, 15:14:55
    #34130579
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
Код: 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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
Option Explicit

Sub Temp()

Dim j As Integer
Dim SymbolCode As Integer

    On Error Resume Next
    Dim i&, lngChars&, lngRow&, lngCol&, lngLastRow&, lngLastCol&
    Dim strTemp$, lngCharactersAmount&
    lngLastRow =  0 : lngLastCol =  0 
    strTemp = "": lngCharactersAmount =  0 
    For j =  1  To Sheets.Count
        Sheets(j).Select
        lngLastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
        lngLastCol = Cells.SpecialCells(xlCellTypeLastCell).Column
        For lngRow =  1  To lngLastRow
            For lngCol =  1  To lngLastCol
                strTemp = Cells(lngRow, lngCol).Text
                lngChars =  0 
                For i =  1  To Len(strTemp)
                    SymbolCode = Asc(Mid(strTemp, i,  1 ))
                     If (SymbolCode <>  60 ) _
                        And (SymbolCode <>  62 ) _
                        And (SymbolCode <>  59 ) _
                        And (SymbolCode <>  58 ) _
                        And (SymbolCode <>  46 ) _
                        And (SymbolCode <>  44 ) _
                        And (SymbolCode <>  33 ) _
                        And (SymbolCode <>  63 ) _
                        And (SymbolCode <>  64 ) _
                        And (SymbolCode <>  185 ) _
                        And (SymbolCode <>  40 ) _
                        And (SymbolCode <>  41 ) _
                        And (SymbolCode <>  45 ) _
                        And (SymbolCode <>  43 ) _
                        And (SymbolCode <>  32 ) _
                    Then
                        lngChars = lngChars +  1 
                    End If
                Next
                lngCharactersAmount = lngCharactersAmount + lngChars
            Next
        Next
    Next
    MsgBox lngCharactersAmount
End Sub
это то же самое, но попробуй и выложи свою книгу или пришли по почте
...
Рейтинг: 0 / 0
15.11.2006, 15:17:00
    #34130596
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
да, к стати, убери On Error Resume Next, и проанализируй, в чем ошибка, если возникает. в таком коде все должно быть без ошибок, а если это переполнение или еще что-то, то игнорирование даст неверный результат
...
Рейтинг: 0 / 0
15.11.2006, 15:35:50
    #34130662
ого
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
нет ;( неееееет, не работает..... А книгу не могу выложить... типа коммерческая тайна, чтоб её!!!
:(, ведь главное, скачала из инета книгу, там ещё больше символов, а она работает, ну и как это понимать?!?!
...
Рейтинг: 0 / 0
15.11.2006, 15:51:17
    #34130725
ого
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
Кстати, убрала, как и советовали "пропускатель" ошибок, вот что стал выдавать:
Method 'Sheets' of object '_Global' failed
При отладки указывает на строчку первого цикла...
...
Рейтинг: 0 / 0
15.11.2006, 16:09:32
    #34130804
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
а так работает?
Код: 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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
Option Explicit

Sub Temp()

Dim j As Integer
Dim Sh As Worksheet
Dim Cell As Range
Dim lngCharactersAmount As Long
Dim strTemp As String
Dim lngChars As Long
'    On Error Resume Next
    
    lngCharactersAmount =  0 
    
    For Each Sh In ActiveWorkbook.Worksheets
        If Sh.Visible = xlSheetVisible Then
            For Each Cell In Sh.UsedRange
                strTemp = Cell.Text
                lngChars = SymbolsAmount(strTemp)
                lngCharactersAmount = lngCharactersAmount + lngChars
            Next Cell
        End If
    Next
    
    MsgBox lngCharactersAmount
End Sub

Function SymbolsAmount(TextValue As String) As Long
Dim i As Long
Dim SymbolCode As Integer

    SymbolsAmount =  0 
    
    For i =  1  To Len(TextValue)
        SymbolCode = Asc(Mid(TextValue, i,  1 ))
        
        If (SymbolCode <>  60 ) _
            And (SymbolCode <>  62 ) _
            And (SymbolCode <>  59 ) _
            And (SymbolCode <>  58 ) _
            And (SymbolCode <>  46 ) _
            And (SymbolCode <>  44 ) _
            And (SymbolCode <>  33 ) _
            And (SymbolCode <>  63 ) _
            And (SymbolCode <>  64 ) _
            And (SymbolCode <>  185 ) _
            And (SymbolCode <>  40 ) _
            And (SymbolCode <>  41 ) _
            And (SymbolCode <>  45 ) _
            And (SymbolCode <>  43 ) _
            And (SymbolCode <>  32 ) _
        Then
            SymbolsAmount = SymbolsAmount +  1 
        End If
    Next i
End Function
...
Рейтинг: 0 / 0
16.11.2006, 06:41:17
    #34131952
ого
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
О ДА!!!!!! СПАСИБО ещё раз огромное!!! Сегодня самое прекрасное утро! Я перед Вами в долгу! Боже, как это приятно, когда все получается!!! )
...
Рейтинг: 0 / 0
16.11.2006, 07:50:46
    #34132016
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
огоО ДА!!!!!! СПАСИБО ещё раз огромное!!! Сегодня самое прекрасное утро! Я перед Вами в долгу! Боже, как это приятно, когда все получается!!! )
хэхэ
...
Рейтинг: 0 / 0
16.11.2006, 10:29:14
    #34132315
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
огоО ДА!!!!!! СПАСИБО ещё раз огромное!!! Сегодня самое прекрасное утро! Я перед Вами в долгу! Боже, как это приятно, когда все получается!!! )
пожалуйста!!! рад, что Вы рады )))))
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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