powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переделать функцию для работы только в одном файле
5 сообщений из 5, страница 1 из 1
Переделать функцию для работы только в одном файле
    #33796140
Suleyman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите переделать функцию для работы на листе "INFO", в ячейке А2, относительно данных в ячейке А1

Код: 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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
Function ПРОПИСЬЮ(SourceDigits As Currency) As String
 Dim STRNG As String, CHAR, Result As String, Prom As String
 Dim i, STRNG_len As Long
 Dim SourceDigTail As Currency
 
 SourceDigTail = (SourceDigits - Int(SourceDigits)) *  100 
 SourceDigits = Int(SourceDigits)

 STRNG = SourceDigits
 STRNG_len = Len(STRNG)
  For i =  1  To  9  - STRNG_len Step  1 
   STRNG = "0" & STRNG
  Next i
  
  For i =  9  To  9  - STRNG_len +  1  Step - 1 
      CHAR = Mid(STRNG, i,  1 )
      If CHAR = "" Then GoTo end_c
   
   If i =  2  Or i =  5  Or i =  8  Then
      If CHAR = "1" Then
       CHAR = Mid(STRNG, i,  2 )
       Select Case CHAR
        Case "10"
          Prom = "десять "
        Case "11"
          Prom = "одиннадцать "
        Case "12"
          Prom = "двенадцать "
        Case "13"
          Prom = "тринадцать "
        Case "14"
          Prom = "четырнадцать "
        Case "15"
          Prom = "пятнадцать "
        Case "16"
          Prom = "шестнадцать "
        Case "17"
          Prom = "семьнадцать "
        Case "18"
          Prom = "восемьнадцать "
        Case "19"
          Prom = "девятнадцать "
      End Select
       Else  ' If char Not = 1
       Select Case CHAR
        Case "0"
          Prom = ""
        Case "2"
          Prom = "двадцать "
        Case "3"
          Prom = "тридцать "
        Case "4"
          Prom = "сорок "
        Case "5"
          Prom = "пятьдесят "
        Case "6"
          Prom = "шестьдесят "
        Case "7"
          Prom = "семьдесят "
        Case "8"
          Prom = "восемьдесят "
        Case "9"
          Prom = "девяносто "
       End Select
      End If
      End If
       If i =  1  Or i =  4  Or i =  7  Then
         Select Case CHAR
         Case "0"
          Prom = ""
         Case "1"
          Prom = "сто "
         Case "2"
          Prom = "двести "
         Case "3"
          Prom = "триста "
         Case "4"
          Prom = "четыреста "
         Case "5"
          Prom = "пятьсот "
         Case "6"
          Prom = "шестьсот "
         Case "7"
          Prom = "семьсот "
         Case "8"
          Prom = "восемьсот "
         Case "9"
          Prom = "девятьсот "
     End Select
     End If
     
     If i =  3  Or i =  6  Or i =  9  Then
         
         If i =  9  And Mid(STRNG, i -  1 ,  1 ) = "1" Then
          Result = "рублей " & Result
          GoTo end_c
         End If
         
         If i =  3  And Mid(STRNG, i -  1 ,  1 ) = "1" Then
          Result = "миллионов " & Result
          GoTo end_c
         End If
         
         If i =  6  And Mid(STRNG, i -  1 ,  1 ) = "1" Then
          Result = "тысяч " & Result
          GoTo end_c
         End If
         
         Select Case CHAR
         Case "0"
          Prom = ""
         Case "1"
            If i =  6  Then
               Prom = "одна "
             Else
               Prom = "один "
            End If
         Case "2"
            If i =  6  Then
               Prom = "две "
             Else
               Prom = "два "
            End If
        Case "3"
          Prom = "три "
         Case "4"
          Prom = "четыре "
         Case "5"
          Prom = "пять "
         Case "6"
          Prom = "шесть "
         Case "7"
          Prom = "семь "
         Case "8"
          Prom = "восемь "
         Case "9"
          Prom = "девять "
     End Select
     End If
     Select Case i
      
      Case  3 
       Select Case CHAR
        Case "1"
         Result = "миллион " & Result
        Case "2", "3", "4"
         Result = "миллиона " & Result
        Case "5", "6", "7", "8", "9"
         Result = "миллионов " & Result
        Case "0"
         If STRNG_len >  6  Then
          Result = "миллионов " & Result
         End If
       End Select
      
      Case  6 
        Select Case CHAR
         Case "1"
           Result = "тысячa " & Result
         Case "2", "3", "4"
           Result = "тысячи " & Result
         Case "5", "6", "7", "8", "9"
           Result = "тысяч " & Result
         Case "0"
           If STRNG_len >  3  Then
            Result = "тысяч " & Result
           End If
        End Select
      
      Case  9 
        Select Case CHAR
         Case "1"
          Result = "рубль " & Result
         Case "2", "3", "4"
          Result = "рубля " & Result
         Case "0", "5", "6", "7", "8", "9"
          Result = "рублей " & Result
        End Select
     End Select
     
     Result = Prom & Result
     

end_c:
   Next i

    Result = Format(Mid(Result,  1 ,  1 ), ">") & Mid(Result,  2 )
    
ПРОПИСЬЮ = Result & Format(SourceDigTail, "00") & " коп."

End Function
...
Рейтинг: 0 / 0
Переделать функцию для работы только в одном файле
    #33796321
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы видимо что-то не поняли. Эта функция будет работать с любыми числовыми данными, на каком бы листе и в какой бы ячейке они не находились.
...
Рейтинг: 0 / 0
Переделать функцию для работы только в одном файле
    #33796598
Suleyman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просто я хочу, что бы этот макрос работал не через надстройку, а просто был внутри файла, и при переносе на другие компьютеры не зыпрашивал обновление связей с надстроечным файлом.
...
Рейтинг: 0 / 0
Переделать функцию для работы только в одном файле
    #33797055
k-nike2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Suleymanпросто я хочу, что бы этот макрос работал не через надстройку, а просто был внутри файла, и при переносе на другие компьютеры не зыпрашивал обновление связей с надстроечным файлом.
Создайте модуль в этом файле и перенесите (скопируйте) в него вашу функцию. Все должно быть окей.
...
Рейтинг: 0 / 0
Переделать функцию для работы только в одном файле
    #33813493
Suleyman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот вариант не проходит. Если сохранить сохранить эту функцию в модуле, то при открытии не открываются все остальные листы книги. К тому же этот файл часто копируют и переносят на другие компы, а включить надстройку многие не догадаются.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переделать функцию для работы только в одном файле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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