powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
9 сообщений из 9, страница 1 из 1
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
    #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
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
    #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
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
    #34130596
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, к стати, убери On Error Resume Next, и проанализируй, в чем ошибка, если возникает. в таком коде все должно быть без ошибок, а если это переполнение или еще что-то, то игнорирование даст неверный результат
...
Рейтинг: 0 / 0
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
    #34130662
ого
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет ;( неееееет, не работает..... А книгу не могу выложить... типа коммерческая тайна, чтоб её!!!
:(, ведь главное, скачала из инета книгу, там ещё больше символов, а она работает, ну и как это понимать?!?!
...
Рейтинг: 0 / 0
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
    #34130725
ого
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, убрала, как и советовали "пропускатель" ошибок, вот что стал выдавать:
Method 'Sheets' of object '_Global' failed
При отладки указывает на строчку первого цикла...
...
Рейтинг: 0 / 0
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
    #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
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
    #34131952
ого
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О ДА!!!!!! СПАСИБО ещё раз огромное!!! Сегодня самое прекрасное утро! Я перед Вами в долгу! Боже, как это приятно, когда все получается!!! )
...
Рейтинг: 0 / 0
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
    #34132016
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
огоО ДА!!!!!! СПАСИБО ещё раз огромное!!! Сегодня самое прекрасное утро! Я перед Вами в долгу! Боже, как это приятно, когда все получается!!! )
хэхэ
...
Рейтинг: 0 / 0
НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
    #34132315
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
огоО ДА!!!!!! СПАСИБО ещё раз огромное!!! Сегодня самое прекрасное утро! Я перед Вами в долгу! Боже, как это приятно, когда все получается!!! )
пожалуйста!!! рад, что Вы рады )))))
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / НЕ МОГУ БОЛЬШЕ!!! Помогите не могу найти ошибку в макросе подсчета символов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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