Недавно я взял с вашего форума классный скрипт, который фильтрует один файл по колонке и на основе фильтрации создает несколько файлов и сохраняет их. Как к этому скрипту добавить чтобы он в каждый файл вставлял первую строчку с основного файла в каждый следующий (отфильтрованный файл)
Код
Option Explicit
Sub copyu()
Dim oDic As Object, oFSO As Object
Dim arrData(), arrSeparateItems(), arrTemp()
Dim TempWb As Workbook
Dim sFolderPath As String, sFullFileName As String
Dim LastRow As Long, i As Long, n As Long, c As Long, r As Long
If MsgBox(?????", vbQuestion + vbYesNo, "Разбивка") = vbNo Then Exit Sub
sFolderPath = "https://mhpo365.sharepoint.com"
If sFolderPath = vbNullString Then Exit Sub
If Right(sFolderPath, 1) <> Application.PathSeparator Then sFolderPath = sFolderPath & Application.PathSeparator
Application.ScreenUpdating = False
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oDic = CreateObject("Scripting.Dictionary")
With ActiveSheet
If .FilterMode = True Then .ShowAllData
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
arrData = .Range("A2:AB" & LastRow).Value
End With
For i = 1 To UBound(arrData)
If Not oDic.Exists(arrData(i, 1)) Then oDic.Add arrData(i, 1), 0&
Next i
arrSeparateItems() = oDic.Keys
For n = LBound(arrSeparateItems) To UBound(arrSeparateItems)
ReDim arrTemp(1 To UBound(arrData), 1 To UBound(arrData, 2))
r = 0
For i = LBound(arrData) To UBound(arrData)
If arrData(i, 1) = arrSeparateItems(n) Then
r = r + 1
For c = LBound(arrData, 2) To UBound(arrData, 2)
arrTemp(r, c) = arrData(i, c)
Next c
End If
Next i
Set TempWb = Workbooks.Add
With TempWb.Worksheets(1)
.Range("A1").Resize(1, UBound(arrData, 2)).Value = arrData
.Range("A2").Resize(UBound(arrTemp), UBound(arrTemp, 2)).Value = arrTemp
.Columns("A:Z").AutoFit
End With
sFullFileName = sFolderPath & arrSeparateItems(n) & ".xlsx"
If oFSO.FileExists(sFullFileName) Then oFSO.Deletefile (sFullFileName)
TempWb.SaveAs sFullFileName, FileFormat:=51 'XLSX
TempWb.Close SaveChanges:=False
Next n
Application.ScreenUpdating = True
MsgBox "???? " & sFolderPath, vbInformation
End Sub
У некоторых пользователей возникла ошибка: (run time error -2147467259 (80004005)) не удаеться сохранить ярлык. Можете подсказать в чем ошибка? Код макроса:
Код
Private Sub Workbook_Open()
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
Dim strDesktop As String
strDesktop = WshShell.SpecialFolders("Desktop")
Dim oShellLink As Object
Set oShellLink = WshShell.CreateShortcut(strDesktop & "\A.I.D.A.lnk")
oShellLink.TargetPath = "https://apps.powerapps.com/"
oShellLink.WindowStyle = 1
oShellLink.IconLocation = "G:\"
oShellLink.Description = "The best app in the world"
oShellLink.WorkingDirectory = strDesktop
oShellLink.Save
Dim a As Integer
a = MsgBox("Поздравляю, на вашем рабочем столе появился значек A.I.D.A" & vbNewLine & "Приятного использования!", 64)
UserForm1.Show
End Sub
Помогите с задачей: Приходит письмо с картинкой формата .ico и ексель файл, в ескселе макрос который скопирует картинку из вложения и вставит на рабочий стол. Мне в голову ничего не приходит( Жду вашей помощи!
Может кто-то знает или может помочь как мне создать ярлык на рабочем столе с ссылкой внутри и с правильной картинкой с помощью VBA. Создаеться для удобства пользователя! Картинка ярлыка должна меняться на нужную, в данном примере можно использовать лубую! Ссылка должна быть на гугл форму но для удобства можно встасить ссылку на этот форум (https://www.planetaexcel.ru/forum/)
Добрый день, Столкнулся с проблемой, не могу придумать как убать из total в матрице одну колонку, что-бы тотал по ней не считался! Помогите с проблемой)
Прошу вашей помощи, в написании макроса: Макрос должен зайти на каждый лист после листа "Tabble 1" поставить фильтр на значение больше 3, и удалить столбцы "B:Z" так же сделать столбец "A" шириной в 61.50 Файл пример будет во вложении.
Так же прошу написать код в тексте письма, так как я его буду немного менять, спасибо за понимание.
Добрый день! Столкнулся с проблемой! Каждый месяц я обновляю файл и должен перетягивать формулу на многих листах в зависимости от месяца! Я скинул пример: Где есть значения в каждом месяце; И есть столбец Total-где вставлена формула СУММ(). Можна ли как-то макросом или формулами сделать так что в след месяце, формула СУММ() будет подтягивать +1 месяц?
Добрый день пользуюсь таким макросом, для отправки писем в Outlook. Сможете помочь? Не могу найти или придумать как сюда можно запихнуть подпись! Буду благодарен!
Код
Sub Send_Range()
Dim myValue As Variant
myValue = InputBox("Введите дату импорта")
Range("A37").Value = myValueActiveSheet.Range("C44:G47").Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = Range("A55").Value
.Item.To = " "
.Item.Subject = Range("A54").Value
.Item.CC = Range("A60").Value
.Item.display
End With
End Sub
Вчера я узнал как сделать эту процедуру формулой! теперь задача для меня усложнилась, и мне нужно с 4 столбцов сделать 1. так же нужно учесть что столбцы могут быть разные (т.к. в файле они одинаковые)
Кто может помогите, пожалуйста!
Файлик с примером во вложении Спасибо за внимание!
Хочу у вас спросить, как можна через vba combobox выбирать и вставлять значения в нужный диапазон? В примере есть куда нужно вставить и есть значения которые нужно вставить! А так же, может ли combobox запускаться после макроса?
Добрый вечер всем добрым людям! Очень прошу о помощи с макросами. В чем проблема, нужно вставить текст в блок "Надпись" с сохранениям формата, тоесть если текст красный то и вставить нужно красный. При смене текста и выполнения макроса, что-бы текст и цвет менялся тоже! Попробывал записать макрорекордером, но оно работает не так как нужно
Всем добрый день, столкнулся с проблемой автоматизации переноса таблиц в power point. Если не сложно можете написать код где будет переносить именно эту таблицу в презентацию которая уже существует (на второй слайд). Буду очень благодарен
Добрый день! Есть код, который експортирует диаграмы как картинки в ексель, как можна его поменять, что-бы картинка была такая же как размер слайда (длина)
Dim slidenumber1 ' номера процедур для переноса в экселе slidenumber1 = Array(2, 3, 4, 10, 11, 13, 15, 17, 20, 21, 24, 25)
Dim slidenumber11 ' номера слайдов для переноса в ппт slidenumber11 = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ) Dim identif As String ' имя процедуры выбора слайдов
Dim objPowerPoint As New PowerPoint.Application Dim objTemplate As PowerPoint.Presentation Const strTemplatePath As String = "C:\Users\yo.klymenko\Desktop\1234.pptx" 'Const strTemplatePath As String = "C:\Users\s.piskun\Desktop\ШАБЛОНSP short.pptx"
Set objTemplate = objPowerPoint.Presentations.Open(Filename:=strTemplatePath)
Visual.Activate
For MainKrok = 0 To UBound(slidenumber1) identif = "Select" & slidenumber1(MainKrok) Application.Run identif Selection.Copy
Люди добрые, Помогите написать код, который будет удалять нули (Будь то просто 0 или в фомуле значение 0). Только нужно обязательно указать диапазон для которого будут удаляться 0.
Добрый вечер! Можете мне помочь пожалуйста с проблемой!! В первой таблице есть дата и время и во второй тоже самое, но в первой таблице не все данные со второй!!!
Как можна найти пропавшые данные с первой таблице во второй?
Грубо говоря что-бы время которого нету в первой таблице в Строке1 писалась "1" Очень прошу о помощи, туплю уже второй день! Спасибо за внимание!
Всем добрый вечер! Столкнулся с проблемой что когда сравниваешь время то впр выбивает ошибки, а когда добавляю милисекунды то тогда он работает не точно, и выбивает ошибки. В файле 2 таблицы и в правой на 2 продажи больше мне нужно найти те которые не хватает и поставить там "1"