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

Страницы: 1
URLDownloadToFile не работает
 
Доброго всем дня! До обновления W10 прекрасно работал код для скачивания файлов с использованием winapi:
Код
Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long

Function DownLoadFile(FromPathName As String, ToPathName As String) As Boolean
DownLoadFile = URLDownloadToFile(0, FromPathName, ToPathName, 0, 0) = 0
End Function
Sub download()
Dim lp As String, Filename As String

Set spn = ThisWorkbook.ActiveSheet  ' запоминаем лист
LR = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
For x = 2 To LR
lp = spn.Cells(x, 7)
kolvo = (Len(lp) - Len(replace(lp, "https", ""))) / Len("https")
r = 1
w = 1
For y = 1 To kolvo
lim = InStr(r, lp, "https")
lim2 = InStr(lim, lp, "jpg")
If lim2 = 0 Then
lim2 = InStr(lim, lp, "jpeg")
End If
If lim2 = 0 Then
lim2 = InStr(lim, lp, "png")
End If
Dim src As String
If InStr(w, lp, ".jpg") > 0 Then
src = Mid(lp, lim, lim2 - lim) & "jpg"
ElseIf InStr(w, lp, ".jpeg") > 0 Then
src = Mid(lp, lim, lim2 - lim) & "jpeg"
Else
src = Mid(lp, lim, lim2 - lim) & "png"
End If
'ppn = spn.Cells(x, 2)
'pic = spn.Cells(x, 2)
pic = spn.Cells(x, 17)
If y = 1 Then
Filename = "C:\1\" & pic & ".jpg"
Else: Filename = "C:\1\" & pic & "_" & y - 1 & ".jpg"
End If
If DownLoadFile(src, Filename) Then
End If
r = lim2
w = lim2
Next y
r = 1
Next x

End Sub

Но после обновления ничего качает, ошибок тоже не выдает. Lib "urlmon" зарегистрирована.
Подскажите что могло отключиться при обновлении. Офис 2016 стандарт.
На машине с 2007 офисом и W10 код скачивает файлы без проблем.
SendKeys разных версиях MS Office
 
Добрый день! Есть необходимость изменить защищенный проект vba одной книги макросом из другой.
Так вот в офис 2013 процедура:
Код
For Each objWindow In objVBProject.VBE.Windows
        
        If objWindow.Type = 6 Then
            objWindow.Visible = True
            objWindow.SetFocus: Exit For
        End If
    Next

    SendKeys "~Skygo@150~", True: SendKeys "{ENTER}", True

дает необходимый результат, но если пытаюсь запустить макрос в 2010,2016 офисе выходит сообщение: invalid password.
С чем это связано и как  бороться?
то перебор на 0000000000001 то недобор на 0000000000002 при операции вставка значений
 
Добрый день! Объясните если можно как так получается: в ячейке формула - =1397,89-1329,97 имеем результат 67,92, далее копирую ячейку и вставляю в соседнюю с выбором параметра "Значения" и получается результат 67,9200000000001. Такие же манипуляции с формулой =13,55-11,33 дают нормальный результат как слева так и справа. с формулой =1671,11-1625,91 результат 45,1999999999998. как с этим жить?
Два критерия отбора максимального значения, ускорить формулу массива
 
Добрый день.
Есть массив даннных примерно на 30000 строк, из которого необходимо вытащить максимальные значения из определенного столбца по 2- м критериям.
Реализовал такой формулой: {=МАКС(ЕСЛИ(Лист5!$B:$B=A219;ЕСЛИ(Лист5!$M:$M="ИТОГО";Лист5!$Z:$Z)))}
Ячеек с такой формулой 230.
При пересчете значений наблюдаются значительные тормоза.
Подскажите, можно ли ускорить вычисления (модифицировать эту f? или использовать другую)?
Макрос для нескольких сводных таблиц на одном листе
 
Добрый день. На одном листе необходимо разместить несколько сводных макросом:
Код
Sub ддд()
Dim lr1& 
   ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Лист1!R9C1:R2000C25", Version:=xlPivotTableVersion15).CreatePivotTable _
        TableDestination:="Лист2!R1C1", TableName:="СводнаяТаблица1", _
        DefaultVersion:=xlPivotTableVersion15
     With ActiveSheet.PivotTables("СводнаяТаблица1")
        .PivotFields( _"группа")
        .Orientation = xlRowField        
         .Position = 1
    End With
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields( _"степень") 
       .Orientation = xlRowField  
       .Position = 2  
  End With    
       ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _
        ("СводнаяТаблица1").PivotFields("размер"), _ 
         "Количество по полю размер", xlCount  
         lr1 = Cells(Rows.Count, 1).End(xlUp).Row + 1
       ActiveWorkbook.Worksheets("Лист2").PivotTables("СводнаяТаблица1").PivotCache. _
        CreatePivotTable TableDestination:=Worksheets("Лист2").Cells(lr1 + 1, 1), TableName:= _
        "СводнаяТаблица2", DefaultVersion:=xlPivotTableVersion15

 With ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields("канал")
        .Orientation = xlRowField    
        .Position = 1  
      End With  
   With ActiveSheet.PivotTables("СводнаяТаблица2").PivotFields("вид") 
       .Orientation = xlRowField    
        .Position = 2    End With  
  ActiveSheet.PivotTables("СводнаяТаблица2").AddDataField ActiveSheet.PivotTables _ 
       ("СводнаяТаблица2").PivotFields("Совокупный"), _ 
       "Количество по полю Совокупный", xlCountEnd Sub

Вот только количество строк с результатами всегда будут разное, то есть первая таблица выйдет за пределы 34 строки. Может подскажете как разместить вторую сводную  после результатов первой и указать этот адрес в TableDestination:="Лист2!R35C1" ?

Изменено: evgen032 - 13.03.2017 16:19:02
Адрес верхней ячейки
 
Добрый день. Формула ЕСЛИ(L18="";"";ЕСЛИ(L18="ИТОГО";0;C17+1)) вычисляет значение ячейки на основе значения вышестоящей +1, но при удалении строки принимает вид ЕСЛИ(L18="";"";ЕСЛИ(L18="ИТОГО";0;#ССЫЛКА!+1)), хочу попробовать прямое указание С17 заменить на ДВССЫЛ, но как записать адрес вышестоящей ячейки не могу придумать. Может подскажете?
Порядковый номер строки в группе
 
Добрый день.
Необходимо вычислить порядковый номер строки в группе строк. Группы отделяются  визуально условным форматированием, при появлении значения "ИТОГО". Пробовал таким образом H10=ЕСЛИ(H9=0;1;ЕСЛИ(H9=1;2;ЕСЛИ(H9=2;3;ЕСЛИ(H9=3;4;0)))), т.е. значение ячейки вычисляется в зависимости от значения вышестоящей (над первой ячейкой отсчета я установил значение 0), все хорошо работает, но проблема в том что строк в группе может быть как 2 так и 4, нужно сделать так чтобы, при появлении в строке  значения "ИТОГО" ячейка принимала значение "0" вне зависимости от значения вышестоящей. Может,что нибудь подскажете -  в каком направлении рыть?
Страницы: 1
Наверх