Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 15

type mismatch в макросе

06.05.2020, 13:58. Показов 2890. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. сверстал макрос для графика ресурсов сотрудников, с отправкой сообщений на почту при изменении ячеек в графике по условию.
но при копировании ячейки и вставкой в несколько выделенных ячеек появляется ошибка "type mismatch"

Visual Basic
1
2
3
4
5
6
7
8
Case 15
                If Len(CStr(ThisCell)) >= 3 Then
                    res = Send("g.sysoev@q-pol.ru", Text + CStr(Now()) + ". Георгий, привет. У тебя изменения в графике. " + CStr(ThisCell) + " ", "Изменение в графике ресурсов")
                ElseIf CStr(ThisCell) = "об" Then
                    res = Send("g.sysoev@q-pol.ru", Text + CStr(Now()) + ". Георгий, привет. У тебя изменения в графике. Обучение. " + " ", "Изменение в графике ресурсов")
                ElseIf CStr(ThisCell) = "" Then
                    res = Send("g.sysoev@q-pol.ru", Text + CStr(Now()) + ". Георгий, привет. В графике отмена. " + " ", "Изменение в графике ресурсов")
                End If
Скрин графика во вложении.

Помогите пожалуйста понять, как это исправить.
Миниатюры
type mismatch в макросе  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2020, 13:58
Ответы с готовыми решениями:

Ошибка в макросе run-time error '13' type mismatch
Выдаётся ошибка при запуске макроса Sub fonts() Dim obj As Font, i As Integer i = 1 If Sheets(2).Name =...

Исправить ошибку "Type Mismatch" в макросе
Доброе время суток.. При наладку 1с предприятия столкнулся с макросом который выводит бак код на весы.. В нем следуящая ошибка Private...

Не вызывается функция (Type mismatch: array or user-defined type expected)
Помогите Option Explicit Dim X() As Double Dim Y() As Double Sub Кнопка1_Щелчок() Dim i As Integer Dim a As Double Dim n As...

31
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 15
06.05.2020, 16:39  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от pashulka Посмотреть сообщение
Troublemaker14, С чего Вы взяли, что в моём макросе отправляете чужая информация ?

Добавлено через 2 минуты


Читайте внимательно код письма отправляются только при изменении в диапазоне EK3:OE2
pashulka, сделал по Вашему коду, вообще теперь ничего не происходит=\ ничего никуда не отправляется(

Добавлено через 23 минуты
в любом случае,хотя бы с тем,что имею,как победить ошибку?)
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
06.05.2020, 16:39
Что я делаю не так ? Почему я получаю необходимые данные при изменении ячеек из указанного диапазона.
Миниатюры
type mismatch в макросе   type mismatch в макросе   type mismatch в макросе  

type mismatch в макросе  
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 15
06.05.2020, 16:48  [ТС]
Visual Basic
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
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim r As Range, a1, a2, t$, txt$, email$
    Set r = Intersect(Target, Range("EK3:OE22"))
    If r Is Nothing Then Exit Sub
    a1 = Array("Сысоев Георгий", "Хохлачев Алексей") 'и т.д.
    a2 = Array("g.sysoev", "a.hohlachev") 'и т.д.
   
    For Each r In r
       t = r.Text: email = a2(r.Row - 3)
       txt = "Отработка - " & Now & ". " & a1(r.Row - 3) & ", привет. "
       If Len(t) > 2 Then
          Send email & "@q-pol.ru", txt & "У тебя изменения в графике." & t & " ", "Изменение в графике ресурсов"
       ElseIf t = "об" Then
          Send email & "@q-pol.ru", txt & "У тебя изменения в графике. Обучение." + " ", "Изменение в графике ресурсов"
       ElseIf Len(t) = 0 Then
          Send email & "@q-pol.ru", txt & "В графике отмена." + " ", "Изменение в графике ресурсов"
       End If
    Next
End Sub
Function Send(ByVal Emails$, ByVal MailText$, Optional ByVal Subject$ = "")  ' CDO function send message
    Dim iMsg As Object
    Dim iConf As Object
    Dim strbody As String
    Dim Flds As Variant
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    iConf.Load -1
    Set Flds = iConf.Fields
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "s.nt@q-pol.ru"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "12314"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.ru"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
        .Update
    End With
    With iMsg
        Set .Configuration = iConf
        .To = Emails$:
        .From = """Informer NT"" s.nt@q-pol.ru"
        .Subject = Subject$:
        .TextBody = MailText$:
        .BodyPart.Charset = "windows-1251"
        .Send
    End With
End Function
pashulka, вот так сделал, не работает..
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
06.05.2020, 16:54
я не обещал, что будет происходить отправка почты. Речь шла о ошибке при вводе, и имею наглость утверждать, что у меня этой проблемы нет, см. скриншоты.
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 15
06.05.2020, 16:55  [ТС]
pashulka, ок,понял. улучшение самого макроса в таком случае до лучших времен отложим..как быть с ошибкой,чтобы при массовом копировании ее избежать..?
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
06.05.2020, 16:58
Troublemaker14, У меня нет ошибки при изменении данных нескольких ячеек. Поэтому, позволю себе откланяться.
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 15
06.05.2020, 18:04  [ТС]
pashulka, Ок. Спасибо за участие)буду дальше искать решение...
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
06.05.2020, 19:44
Troublemaker14, на какой строке кода вываливается в ошибку?
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 15
06.05.2020, 19:53  [ТС]
Hugo121, на второй строке
вот тут
If Len(CStr(ThisCell)) >= 3 Then
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
06.05.2020, 20:46
Следующий вопрос - какого кода?
Потому что по тому, что видно на этой странице - по огрызку ничего не скажешь, а во втором коде такой строки нет!
Хотя я уже сказал, надеюсь видели...
0
0 / 0 / 0
Регистрация: 06.05.2020
Сообщений: 15
06.05.2020, 20:51  [ТС]
Hugo121, кода, который в файле скрипта, с первой страницы темы. Скрипт целиком во вложении опять же на первой странице.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
06.05.2020, 20:57
Лучший ответ Сообщение было отмечено Troublemaker14 как решение

Решение

Да, ладно, я уже на другом ресурсе посмотрел и подправил, сверять эти версии сейчас не буду, и править тоже - машина занята.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2020, 20:57

Type Mismatch
Доброго времени суток, здравствуйте. У меня возникла определённая проблема, которую не не совсем понятно как решить. Макрос работает...

Type mismatch
Добрый день. Помогите, пожалуйста. У меня есть следующий макрос: tempUkn = ActiveSheet.UsedRange.Row +...

Type mismatch
Добрый день, столкнулся с проблемой: на моем компьютере макрос отрабатывает, но на компьютере соседа макрос выдаёт ошибку type mismatch. Не...

Type mismatch
Есть программа учётов товара,при вычислении суммы товаров на продажу выдаёт ошибку type mismatch Часть кода Private Sub...

type mismatch
Забавная ситуация. Сделал 3-я методами задание, с 1 раза, ооочень удивился, перепроверил, работает, сохранил, закрыл, отправил на проверку,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru