powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите исправить функцию
18 сообщений из 18, страница 1 из 1
помогите исправить функцию
    #34793064
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
 [code=plaintext]помогите исправить функцию
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34793078
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
Function get_nomer_str(k_f46 As Integer, k_pred As Integer, k_grbud As Integer, k_uch As Integer) As get_nomer_str
On Error GoTo err
Dim name As String
Dim nomer As Integer
Dim flag_ok As Boolean
flag_ok = False

If k_pred =  859  And k_f46 =  3  And flag_ok <> True Then 
    name = "Город"
    nomer =  5  '50
    flag_ok = True
End If
If k_uch =  33  And k_f46 =  3  And flag_ok <> True Then 
    name = "Село"
    nomer =  6  '51
    flag_ok = True
End If

If flag_ok = False Then
    name = "Не то и не то "
    nomer =  20 
    'flag_ok = True
End If
get_nomer_str.nomer = nomer
get_nomer_str.name = name
get_nomer_str.flag_ok = flag_ok
Exit Function
err:
    MsgBox err.Description, vbCritical
End Function

вызываю функцию ....

Код: plaintext
1.
2.
Cells(i, "O") = get_nomer_str(tmp.Fields("k_f46"), tmp.Fields("k_pred"), Nz(tmp.Fields("k_grbud"),  0 ), tmp.Fields("k_uch")).nomer
                Cells(i, "P") = get_nomer_str(tmp.Fields("k_f46"), tmp.Fields("k_pred"), Nz(tmp.Fields("k_grbud"),  0 ), tmp.Fields("k_uch")).name
                Cells(i, "Q") = get_nomer_str(tmp.Fields("k_f46"), tmp.Fields("k_pred"), Nz(tmp.Fields("k_grbud"),  0 ), tmp.Fields("k_uch")).flag_ok


сейчас все работает, но мне нужно сделать так чтобы условие считывалось с ячейки, то есть k_pred = 859 And k_f46 = 3 - записать в Лист2.cells(1,2) и с нее считывалось, пробовала просто в функцию записать вместо k_pred = 859 And k_f46 = 3 - Лист2.cells(1,2), Excel выдает ошибку
Код: plaintext
Type mismatch

помогите кто знает...
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34793151
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function get_nomer_str ... As get_nomer_str
Это сильно, у меня так не получилось

Dim name As String — name это зарезервированное слово


то есть k_pred = 859 And k_f46 = 3 - записать в Лист2.cells(1,2) и с нее считывалось, пробовала просто в функцию записать вместо k_pred = 859 And k_f46 = 3 - Лист2.cells(1,2), Excel выдает ошибку

k_pred = 859 And k_f46 = 3 это логическое условие и тогда вы листе должны записать true или false.
А в функции заменить If k_pred = 859 And k_f46 = 3 на if cells(1,1).value. Если же вы хотите брать с листа значения k_pred и k_f46 , то в формуле пишите — If k_pred = range("A1").value And k_f46 = range("A2").value.

ps
flag_ok <> True замените на not flag_ok.
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34793215
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
комбинация условий может быть любой, мне нужно как то передать это условие, то есть if cells(1,1) and .... и как то передать ячейку как условие....?
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34793274
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так я же написал — if cells(1,1).value или я вас не очень понимаю.
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34793362
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k_pred = 20 And k_f46 = 8[SRC vba][/src]
а может вообще isnull(k_uch) я заранее не знаю какое записано в ячейке условие, поэтому мне именно с ячейки надо УСЛОВИЕ считать и передать в if, проблема в том что считав с ячейки текст, VBA воспринимает как строку, а мне нужно чтобы воспринимал как условие.....

?
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34793368
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
k_pred =  20  And k_f46 =  8 

а может вообще isnull(k_uch) я заранее не знаю какое записано в ячейке условие, поэтому мне именно с ячейки надо УСЛОВИЕ считать и передать в if, проблема в том что считав с ячейки текст, VBA воспринимает как строку, а мне нужно чтобы воспринимал как условие.....

?
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34793590
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то есть : не подскажете как в if лист2.cells(1,1) then ...
как указать что лист2.cells(1,1) - это условие, а то VBA воспринимает это как строчку, раньше в басике было что если заключено в амперсанты то значит условие
может какая функция есть?
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34794052
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите кто знает, плис...
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34794579
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evaluate
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34794667
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выдает ошибку

Код: plaintext
type mismatch
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34794819
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На что именно выдает ошибку?
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34796277
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сформировала простой но наглядный пример
Помогите исправить ошибку...
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34799250
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модератору: поубиваете уже лишние темы
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34799255
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasadмодератору: поубиваете уже лишние темы
В свою очередь считаю. что наиболее полно в понимании автора и его потребностей продвинулся KL(XL) в разделе MSOffice, а остальные темы можно убить, но это моё личное мнение.
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34799483
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разве в количестве дело???
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34799574
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правила форума на SQL.RUНе рекомендуется:
...
Отправлять сообщение одновременно в несколько форумов. Модераторы соответствующих форумов вправе удалить такие сообщения.

Создавать несколько топиков с одинаковым вопросом.

Правила форума. Прочтите перед тем как задавать вопрос! - Magnus23 ...
5. Кросспостинг(дублирование топиков в разных форумах) явление не желательное. Если вы не уверены и все же хотите получить мнение экспертов с разных форумов(связанных по тематике) - создайте сообщение со ссылкой на оригинальную тему.

6. Дублирование топиков также не приветствуется. Если тема вопроса все еще актуальна - не нужно создавать новый, просто поднимите вопрос наверх запостив в него новое сообщение.
...
...
Рейтинг: 0 / 0
помогите исправить функцию
    #34800284
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.sql.ru/forum/actualthread.aspx?tid=473091&pg=2
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите исправить функцию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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