Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вставка текста в браузер через VBA - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Вставка текста в браузер через VBA
Des-32 Дата: Суббота, 25.03.2023, 20:02 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

2019
Хочу автоматически отправлять отчёт из Excel в чат ВКонтакте.
В отправляемом сообщении должен быть скриншот таблицы и текст: имя администратора и дата.

Скриншот отправить удаётся командой [vba]
Код
SendKeys ("^(v)")
[/vba]
А вот набрать нужный текст - не получается, не знаю команды.
[vba]
Код

Sub Макрос2()
'
' Макрос2 Макрос
'

'
    Range("A1:D8").Select 'ячейки для скриншота
    Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap 'копируем как растровое изображение
    ThisWorkbook.FollowHyperlink Address:="http://vk.com/al_im.php?sel=11691196" 'Переходим по ссылке в чат (курсор сообщения неактивен)
    Application.Wait (Now + TimeValue("00:00:06")) 'Ждем, когда отработает браузер
    Application.SendKeys "{NUMLOCK}" ' Делает NumLock стабильным (без этого почему-то отключается)
    ActiveWindow.Application.SendKeys ("^(t)") ' новая вкладка (чтобы курсор стал активным)
    Application.Wait (Now + TimeValue("00:00:01"))
    ActiveWindow.Application.SendKeys ("^(w)") ' закрыли ненужную вкладку (курсор стал активным)
    Application.Wait (Now + TimeValue("00:00:01"))
    ActiveWindow.Application.SendKeys ("^(v)") ' вставляем картинку с отчётом
    
    ' ЗДЕСЬ ДОЛЖЕН БЫТЬ ТЕКСТ: "Отчёт за 25.03.23" (дата берётся из ячейки G2) + Переход на новую строку + "Администратор: Кристина" (Имя берётся из ячейки G1)
    
    Application.Wait (Now + TimeValue("00:00:02"))
    ActiveWindow.Application.SendKeys ("(~)")      'Нажимаем кнопку Enter для отправки сообщения
    Application.Wait (Now + TimeValue("00:00:01")) 'Ждем, когда отработает приложение
    ActiveWindow.Application.SendKeys ("%({TAB})") 'Жмем alt+tab для перехода обратно в Excel
    
    
End Sub
[/vba]
К сообщению приложен файл: otpravka_otchjota_v_vk.xlsm (20.6 Kb)


Сообщение отредактировал Des-32 - Суббота, 25.03.2023, 20:20
 
Ответить
СообщениеХочу автоматически отправлять отчёт из Excel в чат ВКонтакте.
В отправляемом сообщении должен быть скриншот таблицы и текст: имя администратора и дата.

Скриншот отправить удаётся командой [vba]
Код
SendKeys ("^(v)")
[/vba]
А вот набрать нужный текст - не получается, не знаю команды.
[vba]
Код

Sub Макрос2()
'
' Макрос2 Макрос
'

'
    Range("A1:D8").Select 'ячейки для скриншота
    Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap 'копируем как растровое изображение
    ThisWorkbook.FollowHyperlink Address:="http://vk.com/al_im.php?sel=11691196" 'Переходим по ссылке в чат (курсор сообщения неактивен)
    Application.Wait (Now + TimeValue("00:00:06")) 'Ждем, когда отработает браузер
    Application.SendKeys "{NUMLOCK}" ' Делает NumLock стабильным (без этого почему-то отключается)
    ActiveWindow.Application.SendKeys ("^(t)") ' новая вкладка (чтобы курсор стал активным)
    Application.Wait (Now + TimeValue("00:00:01"))
    ActiveWindow.Application.SendKeys ("^(w)") ' закрыли ненужную вкладку (курсор стал активным)
    Application.Wait (Now + TimeValue("00:00:01"))
    ActiveWindow.Application.SendKeys ("^(v)") ' вставляем картинку с отчётом
    
    ' ЗДЕСЬ ДОЛЖЕН БЫТЬ ТЕКСТ: "Отчёт за 25.03.23" (дата берётся из ячейки G2) + Переход на новую строку + "Администратор: Кристина" (Имя берётся из ячейки G1)
    
    Application.Wait (Now + TimeValue("00:00:02"))
    ActiveWindow.Application.SendKeys ("(~)")      'Нажимаем кнопку Enter для отправки сообщения
    Application.Wait (Now + TimeValue("00:00:01")) 'Ждем, когда отработает приложение
    ActiveWindow.Application.SendKeys ("%({TAB})") 'Жмем alt+tab для перехода обратно в Excel
    
    
End Sub
[/vba]

Автор - Des-32
Дата добавления - 25.03.2023 в 20:02
Gustav Дата: Суббота, 25.03.2023, 22:08 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
А вот набрать нужный текст - не получается, не знаю команды

Так всё точно так же. SendKeys'у можно скармливать не только отдельные клавиши(символы), но и целые строки символов, возможно, заранее подготовленные (типа вставка в строку даты или имени администратора). И дальше как-то так:
[vba]
Код
SendKeys "Отчёт за 25.03.23" & vbCrLf & "Администратор: Кристина"
или
SendKeys "Отчёт за 25.03.23~ Администратор: Кристина"
[/vba]
Ну, и не забывать, что он капризен к раскладке клавиатуры. Поэтому перед запуском макроса и в "источнике" (редактор VBA), и в "приемнике" (браузер) надо иметь включенной русскую раскладку, иначе русские буквы рискуют стать вопросительными знаками в "приемнике".


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
А вот набрать нужный текст - не получается, не знаю команды

Так всё точно так же. SendKeys'у можно скармливать не только отдельные клавиши(символы), но и целые строки символов, возможно, заранее подготовленные (типа вставка в строку даты или имени администратора). И дальше как-то так:
[vba]
Код
SendKeys "Отчёт за 25.03.23" & vbCrLf & "Администратор: Кристина"
или
SendKeys "Отчёт за 25.03.23~ Администратор: Кристина"
[/vba]
Ну, и не забывать, что он капризен к раскладке клавиатуры. Поэтому перед запуском макроса и в "источнике" (редактор VBA), и в "приемнике" (браузер) надо иметь включенной русскую раскладку, иначе русские буквы рискуют стать вопросительными знаками в "приемнике".

Автор - Gustav
Дата добавления - 25.03.2023 в 22:08
Des-32 Дата: Воскресенье, 26.03.2023, 00:56 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

2019
Так всё точно так же. SendKeys'у можно скармливать не только отдельные клавиши(символы), но и целые строки символов

Спасибо. не догадался. Только сегодня познакомился с SendKeys

А можно ли Имя Администратора брать из ячейки? Дело в том, что Имя и Дата - это переменные. Они будут меняться
 
Ответить
Сообщение
Так всё точно так же. SendKeys'у можно скармливать не только отдельные клавиши(символы), но и целые строки символов

Спасибо. не догадался. Только сегодня познакомился с SendKeys

А можно ли Имя Администратора брать из ячейки? Дело в том, что Имя и Дата - это переменные. Они будут меняться

Автор - Des-32
Дата добавления - 26.03.2023 в 00:56
Gustav Дата: Воскресенье, 26.03.2023, 01:56 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
А можно ли Имя Администратора брать из ячейки?

[vba]
Код
Sub io()
    Dim str As String
    str = "Отчёт за " & Format(Range("G2"), "dd.mm.yy") & vbCrLf & "Администратор: " & Range("G1")
    SendKeys str
End Sub
[/vba]
И не забудьте русские раскладки клавиатуры включить перед выполнением!


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
А можно ли Имя Администратора брать из ячейки?

[vba]
Код
Sub io()
    Dim str As String
    str = "Отчёт за " & Format(Range("G2"), "dd.mm.yy") & vbCrLf & "Администратор: " & Range("G1")
    SendKeys str
End Sub
[/vba]
И не забудьте русские раскладки клавиатуры включить перед выполнением!

Автор - Gustav
Дата добавления - 26.03.2023 в 01:56
askarbolysbekov2015 Дата: Воскресенье, 26.03.2023, 13:28 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 20% ±

2016
Добрый день народ, помогите пжлс run-time error 9

[vba]
Код
Sub Кнопка3_щелкнут ()
Dim i, j, k, l, s1, s2, s3, s4, s5, ss, s6, s7, s8, s9, s10 As Single
Dim s As String

Worksheets("паспорт").Activate
i = Worksheets("паспорт").Cells(2, 15).Value
l = Worksheets("паспорт").Cells(5, 8).Value
' Worksheets("ИТГОГО (2)").Activate
s = Worksheets("ИТОГО (2)").Cells(i + 6, 2).Value

' Worksheets(s).Activate

For i = 3 To 996
k = Worksheets(s).Cells(i, 3).Value
If l = k Then
s1 = Worksheets(s).Cells(i, 1).Value
s2 = Worksheets(s).Cells(i, 8).Value
s3 = Worksheets(s).Cells(i, 9).Value
s4 = Worksheets(s).Cells(i, 10).Value
s5 = Worksheets(s).Cells(i, 11).Value
s6 = Worksheets(s).Cells(i, 12).Value
ss = InStr(s6, "-")
s7 = Mid(s6, ss + 1)
3 s6 = Mid(s6, 1, ss - 1)
s8 = Worksheets(s).Cells(i, 13).Value
s9 = Worksheets(s).Cells(i, 14).Value
s10 = Worksheets(s).Cells(i, 15).Value
Worksheets("паспорт").Activate
Worksheets("паспорт").Cells(7, 6).Value = s1
Worksheets("паспорт").Cells(16, 6).Value = s2
Worksheets("паспорт").Cells(21, 5).Value = s3
Worksheets("паспорт").Cells(24, 6).Value = s4
Worksheets("паспорт").Cells(26, 6).Value = s5
Worksheets("паспорт").Cells(28, 6).Value = s6
Worksheets("паспорт").Cells(28, 8).Value = s7
Worksheets("паспорт").Cells(30, 7).Value = s8
Worksheets("паспорт").Cells(32, 6).Value = s9
Worksheets("паспорт").Cells(34, 5).Value = s10
End If
' Worksheets(s).Activate
Next i
Worksheets("паспорт").Activate
End Sub
[/vba]
К сообщению приложен файл: 5852749.jpg (93.2 Kb)


Сообщение отредактировал Serge_007 - Понедельник, 27.03.2023, 09:04
 
Ответить
СообщениеДобрый день народ, помогите пжлс run-time error 9

[vba]
Код
Sub Кнопка3_щелкнут ()
Dim i, j, k, l, s1, s2, s3, s4, s5, ss, s6, s7, s8, s9, s10 As Single
Dim s As String

Worksheets("паспорт").Activate
i = Worksheets("паспорт").Cells(2, 15).Value
l = Worksheets("паспорт").Cells(5, 8).Value
' Worksheets("ИТГОГО (2)").Activate
s = Worksheets("ИТОГО (2)").Cells(i + 6, 2).Value

' Worksheets(s).Activate

For i = 3 To 996
k = Worksheets(s).Cells(i, 3).Value
If l = k Then
s1 = Worksheets(s).Cells(i, 1).Value
s2 = Worksheets(s).Cells(i, 8).Value
s3 = Worksheets(s).Cells(i, 9).Value
s4 = Worksheets(s).Cells(i, 10).Value
s5 = Worksheets(s).Cells(i, 11).Value
s6 = Worksheets(s).Cells(i, 12).Value
ss = InStr(s6, "-")
s7 = Mid(s6, ss + 1)
3 s6 = Mid(s6, 1, ss - 1)
s8 = Worksheets(s).Cells(i, 13).Value
s9 = Worksheets(s).Cells(i, 14).Value
s10 = Worksheets(s).Cells(i, 15).Value
Worksheets("паспорт").Activate
Worksheets("паспорт").Cells(7, 6).Value = s1
Worksheets("паспорт").Cells(16, 6).Value = s2
Worksheets("паспорт").Cells(21, 5).Value = s3
Worksheets("паспорт").Cells(24, 6).Value = s4
Worksheets("паспорт").Cells(26, 6).Value = s5
Worksheets("паспорт").Cells(28, 6).Value = s6
Worksheets("паспорт").Cells(28, 8).Value = s7
Worksheets("паспорт").Cells(30, 7).Value = s8
Worksheets("паспорт").Cells(32, 6).Value = s9
Worksheets("паспорт").Cells(34, 5).Value = s10
End If
' Worksheets(s).Activate
Next i
Worksheets("паспорт").Activate
End Sub
[/vba]

Автор - askarbolysbekov2015
Дата добавления - 26.03.2023 в 13:28
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!