.
Название темы должно отражать суть задачи.
Темы типа "ПОМОГИТЕ!!!", "Срочно!" и т.п. будут удаляться без объяснения причин
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
Просмотр сообщений
=ЕСЛИ(C2:C11="Сидоров";СУММ(ЕСЛИ(ЧАСТОТА(A2:A11;A2:A11)>0;1));0)
TempFile = "C:\Temp\TempHtml.htm"
With ActiveWorkbook.PublishObjects.Add(xlSourceRange, _
TempFile, "Отклонение", "A1:K50", xlHtmlStatic)
Private Declare Function ShowWindow Lib "User32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Function SheetToHTML(sh As Worksheet)
Dim TempFile As String
Dim fso As Object
Dim ts As Object
Sheets("Отклоение").Visible = True
sh.Copy
TempFile = sh.Parent.Path & "\TempHtml.htm"
With ActiveWorkbook.PublishObjects.Add(xlSourceRange, _
TempFile, "Отклонение", "A1:K50", xlHtmlStatic)
.Publish (True)
.AutoRepublish = False
End With
ActiveWorkbook.Close False
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
SheetToHTML = ts.ReadAll
SheetToHTML = Replace(SheetToHTML, "align=center", "align=left")
ts.Close
Set ts = Nothing
Set fso = Nothing
Kill TempFile 'сделать экспорт таблицы по средством временного файла, а затем его удалить
Sheets("Отклонение").Visible = False
End Function
Sub Отправка ()
Dim mailApp As Object
Set mailApp = CreateObject("Outlook.Application")
With mailApp.CreateItem(0)
.To = Sheets("Письмо").Range("D10")
.CC = Sheets("Письмо").Range("E10")
.Subject = Sheets("Плюс").Range("B2")
.BodyFormat = 2
.HTMLBody = SheetToHTML(ThisWorkbook.Worksheets("Отклонение"))
.Display
End With
Set mailApp = Nothing
End Sub
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
Sub Пример()
Dim i As Integer
Dim j As Integer
Dim lastrow As Long
Set Moi_makrosy = ThisWorkbook
Set List1 = ThisWorkbook.Sheets(1)
Set List2 = ThisWorkbook.Sheets(2)
Set List3 = ThisWorkbook.Sheets(3)
For i = 1 To 11
For j = 1 To 11
If List1.Cells(i, 3) = List3.Cells(1, 1) Then
If List1.Cells(i, 5).Value = "прогул" Then
lastrow = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row
List2.Cells(lastrow + 1, 1) = List1.Cells(i, 2)
List2.Cells(lastrow + 1, 2) = List1.Cells(i, 3)
List2.Cells(lastrow + 1, 3) = List1.Cells(i, 4)
List2.Cells(lastrow + 1, 4) = List1.Cells(i, 5)
End If
End If
Next j
Next i
End Sub