Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 След.
Правильное обращение к диапазону с помощью with
 
vikttur, а вы - последователь Влада Цепеша, АднАкА! На кол то сажать.
Вы за смесь французского с нижегородским, а я за аутентичность. И это ХОЛИВАР!
Может я вашего буржуинского в общении не приемлю!
Правильное обращение к диапазону с помощью with
 
Надеюсь, тут не принято сжигать на кострах за "ересь" ))))))))))))
Правильное обращение к диапазону с помощью with
 
vikttur, я уже написал.

Странно, но вы не понимаете.
Три варианта:
- по умолчанию - эктившыт,
- если перед селлс вертится шыт (с уивом) - используем шыт,
- если ПРЯМО указан шыт через точку - шыт.
Что тут непонятного? Убираем точку и он ДОЛЖЕН натравливаться на уив и его шыт.

П.С. ты не хочешь принять нашу ньютоновскую веру, говорили физики Эйнштейну ))))))))))))))))) (я каэшн ни на что не претендую, я просто вопросы задаю. у нас тут на стене написано, что "инновации" начинаются тогда, когда все, что уже было сделано выкидывается нафиг и начинаем думать заново).
Изменено: zavhoz1984 - 07.12.2015 17:35:23
Правильное обращение к диапазону с помощью with
 
The_Prist, а вы смотрите со своей колокольни.

Я уверен, что можно было бы селлс отвязать от эктившит при указании названия листа в начале обращения (без втыкания точки) по умолчанию. А если надо привязать к другому листу, то вэлкам - указывай другой лист прям в тексте.

П.С. у меня справка не работает. Настройки системные на работе такие. Говорит "запрещено к инету подрубаться".
Правильное обращение к диапазону с помощью with
 
Ну вот The_Prist и объяснил, что разработчики языка особо не заморачивались и селлс без точки натравили на эктившыт. Хотя вот он, чуть раньше написанный шыт.

Ладно, не буду богохульствовать на местных святых, затыкаюсь. ВСЕМ СПАСИБО!!!
Правильное обращение к диапазону с помощью with
 
Я вот не понимаю тех, кто этот язык создавал. Ну понятно же, что если вначале стоит шыт, то селлсы из него. Вот нет, блин, надо и для селсов шыт указать....

А ты мучайся, гадай, как тама все непросто устроено :(
Правильное обращение к диапазону с помощью with
 
Юрий М, огромное спасибо!
Правильное обращение к диапазону с помощью with
 
А без селекта нельзя?

vikttur, этот макрос будет работать быстрее обычного селекта, да?
Код
With Sheets("a2")
.Select
With .Range(Cells(1, 1), Cells(5, 5))
.Interior.ThemeColor = xlThemeColorDark1
.Interior.TintAndShade = -0.149998474074526
End With
End With
Правильное обращение к диапазону с помощью with
 
Объясните, плиззз, чайнику.

Если лист активен, то все ок. Если нет, то начинаются проблемы. Использую with, чтоб отделаться от select.
Когда работал со строками, то все было ок, т.к. числовой параметр в Range("A1:C1") можно было "вклеить" (Range("A" & i & ":C" & i) )/

Сейчас встала необходимость работать с разными столбцами. Подскажите как?
Первый макрос выдает ошибку при неактивном листе. Второй не выдает, но он не числовой.
Код
With Sheets("a2")
With .Range("A1:B5")
.Interior.ThemeColor = xlThemeColorDark1
.Interior.TintAndShade = -0.149998474074526
End With
End With

With Sheets("a2")
With .Range(Cells(1, 1), Cells(5, 5))
.Interior.ThemeColor = xlThemeColorDark1
.Interior.TintAndShade = -0.149998474074526
End With
End With

П.С. да, я нихрена не знаю, да, мне надо учить матчасть , да искал, но не нашел, да ... уже иду...
Изменено: zavhoz1984 - 07.12.2015 10:50:06
Помогите научиться писать быстро в VBA
 
Да, Прист.

Я написал три процедуры под три разных словаря. Вот первый, простой. Надо указать строку и два столбца. Первый столбец засасывает в кей, второй в айтем. Потом я переименовываю словарь.
Код
Sub cd1()
'st = "a1_8_9_10": Call cd1: Dim s333 As Object: Set s333 = s1:Set s1 = Nothing
Call sp
i100 = CInt(stri(1))
j100 = CInt(stri(2))
Do While Sheets(stri(0)).Cells(i100, j100).Value <> ""
i100 = i100 + 1
Loop
i100 = i100 - 1
'Debug.Print i100
Set s1 = CreateObject("Scripting.Dictionary")
For i = CInt(stri(1)) To i100
      key11 = CStr(Sheets(stri(0)).Cells(i, CInt(stri(2))).Value)
      item11 = CStr(Sheets(stri(0)).Cells(i, CInt(stri(3))).Value)
      'Debug.Print key11, Item11
      If Not s1.exists(key11) Then s1.Add key11, item11
Next i
End Sub
Изменено: zavhoz1984 - 03.12.2015 17:55:39
Помогите научиться писать быстро в VBA
 
Цитата
JayBhagavan написал:
В помощи не откажу - не вижу за что отказывать.

Спасибо! Не раз помогали.

При чем Пристовская теория в корне не верна. Вот тот человек, который мне писал "погугли сэндкейс" и "учи шэлэкзикьют". И я смотрел и разбирался, и сам доходил. Просто мне, как ламеру, нужна хотя бы зацепка и поэтому я пишу СЮДА.

Прист все прекрасно объяснил. Не надо пытаться затолкать переменную в имя при объявлении словаря. Надо просто ПЕРЕИМЕНОВАТЬ словарь. (приравнять его к новому, а старый убить). Я ж написал - СПА-СИ-БО!!!

Плачь остальных комментить не буду, а то еще раз забанят :)

Следующий вопрос.

Ребята, это быстро или можно ЕЩЕ быстрее (писать)?
Код
Sub knopko()
Call ofb
st = "a1_7_8": Call co
st = "a1_" & lr & "_8": Call oval
val = val + 1
st = "a1_" & lr + 1 & "_8_" & val: Call ival
st = "a1_" & lr + 1 & "_8_" & lr + 1 & "_8": Call tu
st = "a1_" & lr + 1 & "_9_" & lr + 1 & "_12": Call tc
st = "a1_" & lr + 1 & "_10_" & lr + 1 & "_10": Call slil
Call ofe
End Sub

Моя задумка. Общаться с компом с помощью переменной st, в которую постоянно записывать ЛИСТ, координаты рэнджа через "_". Процедуры сплитят этот st, селектят тот самый рэндж и производят с ним действия: форматирование, возрат данных, ввод данных и т.д.
Помогите научиться писать быстро в VBA
 
Я слово "макрос" впервые два месяца назад услышал.
И да... нет у меня времени на учебники!!!!
Изменено: zavhoz1984 - 02.12.2015 14:34:19
Помогите научиться писать быстро в VBA
 
Ой, они обиделись.
Не люблю программеров и юристов. И те, и другие высокомерные ... люди. Хотя большая их часть - в своей области ламо.
И стоит им чуть-чуть на хвост наступить, так сразу начинается бурление говн.

Примеры.
Один начальник юр.департамента написал мне "результат оказания услуг". После этого он долго ко мне бегал и объяснял, что он не то имел в виду и что-то в юриспруденции знает.
Недавно наших "программистов" попросил натравить их ехе файл на activesheet. На что мне чуть ли не смету выкатили, а еще сказали, что VBA - пещерный язык и они, светочи программирования, им брезгуют ибо сишарп.
Пришлось натравливать макрос на их ехе. Да еще и sendkeysом, а потом убивать его в процессах.
Они тоже обиделись. Ну нихрена тут налоговый консультант их жизни учит.
Помогите научиться писать быстро в VBA
 
Я не "вечный студент". Я вообще не программер, а налоговый консультант, например. Вот только приходится вертеться. Панимашь.

Вы знаете устройство кофемашины? Я нет! Но это не мешает мне жать на кнопку.
Также с VBA.
А разве этот форум не создан для таких, как я? Или сюда только по пропуску?
И вААще второе правило интернетов знаем? (не нравиЦо - не читай)
Изменено: zavhoz1984 - 02.12.2015 14:12:26
Помогите научиться писать быстро в VBA
 
Прист, огромное спасибо!

Изучать язык с нуля нет возможности. :( Я на нем пишу (насяльника заставляет). И делать это надо быстро. Вот решил таки ускорить процесс.

И да - я собираюсь под себя написать процедуру создания и заполнения словаря с всевозможными примочками.
Помогите научиться писать быстро в VBA
 
Здесь она и будет похоронена?
Помогите научиться писать быстро в VBA
 
Пишу сейчас для себя джентельменский набор из процедур.
Просто указываю в макросе переменную (тут она di). Потом вызываю процедуру.

Уже написал не мало. В основном под оформление. Вот хочу со словарями разобраться. Чтоб создавать, добавлять, выводить и т.д. тоже процедурами. Вместо длинного текста Call и название процедуры.
Помогите научиться писать быстро в VBA
 
Предыдущую тему, видимо, залочили.

Постоянно приходится писать CreateObject("Scripting.Dictionary") и прочие длинные выражения. Пытаюсь упростить написание кода.

Не работает макрос. Оно и понятно di - объект, а я в него строку пытаюсь запихнуть (название нового словаря).

Помогите, плиииз. Надо, чтоб создался словарь "ssn". Аналогично с функцией add.
Код
Global di As Object
Sub test4()
di = "ssn": Call sd
End Sub
Sub sd()
Set di = CreateObject("Scripting.Dictionary")
End Sub
Изменено: zavhoz1984 - 02.12.2015 12:53:43
Изменение громкости с помощью VBA
 
Чета нифига
При чем, я не понимаю, где тут ДЕЙСТВИЕ :)
Код
Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Integer, ByVal dwVolume As Integer) As Integer
retval = waveOutSetVolume(0, &HFFFF)
Изменение громкости с помощью VBA
 
Ругается, не находит mmsystem.dll  :(
Код
Declare Function waveoutSetVolume Lib "mmsystem.dll" (ByVal wDeviceID As Integer, ByVal dwVolumeRight As Integer, ByVal dwVolumeLeft As Integer) As Integer
   
   Const SND_ASYNC = &H1
   Const SND_NODEFAULT = &H2
   Dim CurrentVolLeft As Long
   Dim CurrentVolRight As Long

   Dim x As Integer
   CurrentVolLeft = CurrentVolLeft + &H1000&
   If CurrentVolLeft > &HFFFF& Then CurrentVolLeft = &HFFFF&
   x = waveoutSetVolume(0, CInt("&H" + Hex$(CurrentVolRight)), CInt("&H" + Hex$(CurrentVolLeft)))
Изменение громкости с помощью VBA
 
Никто не знает, как с помощью VBA громкость звука поменять?
Проигрывание exe из VBA, AppActivate
 
Огромное спасибо!
Связь с открытым окном стала стабильной. Вроде сбоев в общении нет (тьфутьфутьфу)
Проигрывание exe из VBA, AppActivate
 
Помогите, плиз.

Работает ЧЕРЕЗ раз. То работает, то нет.
Может это просто способ с кнопками "глючный"? Дык вроде нет.
Уже поставил задержку (думал, машина слишком быстро вбивает клавишы). Не помогло.
Расшифровка команд и долгая задержка не помогают понять причину, т.к. окно exe активировано, но НЕ РАЗВЕРНУТО и что там происходит я не вижу. Может кто подскажет аналог команды AppActivate для разворачивания окна, я хоть пойму в чем дело.

П.С. путь к файлу вбивает всегда. До кнопки "завершить" доходит через раз :(
Код
'запускаем exe
p = "C:\Users\XXX\Desktop"
    Call Shell(p & "\XXX.exe")
    Application.Wait (Now + TimeValue("0:00:05"))
        
'активируем окно exe
    AppActivate ("XXX")
'нажимаем TAB, Enter
    SendKeys "{TAB 1}", True
    Debug.Print "tab"
    Application.Wait (Now + TimeValue("0:00:05"))
    
    SendKeys "{Enter 1}", True
    Debug.Print "enter"
    Application.Wait (Now + TimeValue("0:00:05"))
'курсор на окне "обзор" вбиваем в него путь к файлу
    SendKeys p & "\XXX.xlsx", True
    Application.Wait (Now + TimeValue("0:00:05"))
 
'нажимаем TAB, Enter
    SendKeys "{Enter 1}", True
    Debug.Print "enter"
    Application.Wait (Now + TimeValue("0:00:05"))
    
    AppActivate ("XXX")
    Application.Wait (Now + TimeValue("0:00:05"))
    
    SendKeys "{Enter 1}", True
    Debug.Print "enter"
    Application.Wait (Now + TimeValue("0:00:05"))
    
    SendKeys "{TAB 1}", True
    Debug.Print "tab"
    Application.Wait (Now + TimeValue("0:00:05"))
    
    SendKeys "{Enter 1}", True
    Debug.Print "enter"
    Application.Wait (Now + TimeValue("0:00:05"))
Использование like "*.xlsx"
 
Я - идиот. Закрывайте тему.

Прист, вы правы. attachments(1) он выводил только один файл, а там их несколько, вот и выскакивали другие (где их несколько) docx и все остальное.
Использование like "*.xlsx"
 
Кажется, я начал понимать. Формула правильная. Переменная не правильная :(

Прист, вроде ваш вчера посоветанный oAtch должен работать. Но у меня какая-то чертовщина.
К сообщению прикреплен файл docx, но oAtch=*******. xlsx, при этом никаких вложений с xlsx!!!!!!! Чо за?
Код
 Set oOutlook = GetObject(, "outlook.Application")
  
        Set oNamespace = oOutlook.GetNamespace("MAPI")
        Set myFolder = oNamespace.GetDefaultFolder(6)
        Set myMail = myFolder.Items
Previous:
        For Each myItem In myMail
            On Error Resume Next
            
               For Each oAtch In myItem.Attachments
               
               If oAtch Like "*.xlsx" Then

               Debug.Print " a=" & myItem.Attachments(1)

           
               End If
               Next
        Next
Использование like "*.xlsx"
 
Уважаемый Прист!
Вы не поняли. Он у меня хватает не только xlsx, но и docx с pptx. С чего вдруг - не понимаю.
Использование like "*.xlsx"
 
Прошу помощи, сижу уже несколько часов.

Почему при использовании
Код
If a Like "*.xlsx" Then

он мне отсеивает .pptx и .docx
Как называется имя вложения в аутлуке?
 
Огромное спасибо! :)
Как называется имя вложения в аутлуке?
 
Да я уж как только не менял.
Вот при этом пишет эрэй индекс аут оф баундс.
Как проверить на наличие вложения?


Код
If myItem.Attachments(1).DisplayName = "11111.xlsx" Then
Как называется имя вложения в аутлуке?
 
Прошу помощи. Не подскажите, как называется имя вложения в аутлуке?

Запускаю код, но он мне все сообщения выдает при проверке ифом имени вложения (не работает, сволочь, по имени вложения). При чем по теме (имени) письма работает (в коде заковычено).

Код
Sub Ïåðâîå_MailSave1()
    Dim oOutlook As Object ' New Outlook.Application
    Dim oNamespace As Object 'Outlook.Namespace
    Dim myFolder As Object 'Outlook.Folder
    Dim myMail As Object 'Outlook.Items
    Dim myItem As Object 'Outlook.MailItem
Dim ad As String
t = ActiveWorkbook.Path

 Set oOutlook = GetObject(, "outlook.Application")
  
        Set oNamespace = oOutlook.GetNamespace("MAPI")
        Set myFolder = oNamespace.GetDefaultFolder(6)
        Set myMail = myFolder.Items
 
 
        For Each myItem In myMail
            On Error Resume Next
                    
        'If myItem.Subject = "1" Then
        If myItem.Attachments(1).Count <> 0 And myItem.Attachments(1).Name = "11111.xlsx" Then
        Debug.Print "a=" & myItem.Attachments(1)
        Debug.Print "s=" & myItem.Subject
        End If
        Next
End Sub
Страницы: 1 2 3 4 5 6 След.
Наверх