Добрый вечер. Подскажите, всю голову сломал, проблема:
Cуть ,первым макросом в ячейку Cells(13, "C") кидаю экспорт файл(насколько понимаю в "буфер"). В лист "Шаблон" нужно вставить Range("A2:I" & "K2:P" & lr).Copy столбец J не нужен из этого "буфера" Вставлять надо в ячейку B2 листа "шаблон". Колличество столбцов всегда одинаковое в "буфере", количество строк всегда разное
Вот тут он удаляет все формулы при вставке, которые находятся правее столбца P , в cтолбце Q и далее .Изначально копирует и пустые ячейки до конца листа...
Cам код:
Код
Sub Путь()
Dim FilesToOpen
Dim OpenPath2 As String
OpenPath2 = CStr(ThisWorkbook.Path)
'ChDrive "C:\Program Files"
ChDir OpenPath2
FilesToOpen = Application.GetOpenFilename _
("Excel files(*.xlsx),*.xlsx", 1, "Выбрать файл графиков", , False)
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "Файл не выбран!"
Exit Sub
End If
Cells(13, "C") = FilesToOpen
End Sub
Sub Обновить()
Dim FilesToOpen
Dim x As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
OpenPath = ThisWorkbook.Path
ChDir OpenPath
Dim C As Range
Set TWB = ThisWorkbook
With Sheets("Шаблон")
lr = .Cells(.Rows.Count, "D").End(xlUp).Row
If lr > 1 Then .Range("B2:P" & lr).ClearContents
End With
Set IWB = Workbooks.Open(Cells(13, "C"))
With Sheets("Sheet1")
lr = .Cells(.Rows.Count, "D").End(xlUp).Row
If lr > 3 Then
.Range("A2:I" & "K2:P" & lr).Copy
TWB.Sheets("Шаблон").Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False Вот тут он удаляет все формулы которые находятся правее столбца
End If
End With
IWB.Close
ActiveWorkbook.RefreshAll
Sheets("Пульт").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "Обновление ок " vbInformation, "Информация"
End Sub
Название темы должно отражать суть задачи. Предложите. Модераторы переименуют. Код в сообщении следует оформлять с помощью кнопки <...>. Файл-пример где?
Нужно не только в Курилке вращаться, но и правила прочитать.
vikttur написал: Название темы должно отражать суть задачи.
Задача и есть paste в VBA . Файлы много весят и по корпоративным соображениям не могу их сюда залить. Range("B2"). - пробывал конкретный диапазон указать , как тут к примеру Range("A2:I" & "K2:P" & lr).Copy , не получается:(
Код
If lr > 3 Then
.Range("A2:I" & "K2:P" & lr).Copy
TWB.Sheets("Шаблон").Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False Вот тут он удаляет все формулы которые находятся правее столбца P вставляя пустые ячейки до конца листа...
End If
Sub test()
Dim lr&
lr = 4
If lr > 3 Then MsgBox "A2:I" & "K2:P" & lr
End Sub
внимательно смотрите в сообщение в макросе вот это "A2:I" & "K2:P" & lr взято из Вашего .Range("A2:I" & "K2:P" & lr).Copy это не налезает на здоровую голову!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
restation, Если хотите учится, то начните с того, чтоб научится слушать, ну или читать в данном случае. За 14 минут до создания этой темы был дан ответ там но вы уперто доказывали, что проблема в том что вставляется не корректно.