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

Страницы: 1
Перебор заданных книг, Помогите оптимизировать код
 
Доброго пятничного вечера, уважаемые пользователи excell

Есть такая конструкция:

Код
Dim sadr As String
sadr = "F3:Q71,S3:AP71"
Dim SWB As Workbook
Set SWB = Workbooks("book1.xlsx")
Dim i As Long

For Each Sheet In SWB.Sheets
If Sheet.Visible = True Then c = c + 1
Next

For i = 2 To c

With WB.Worksheets("Sheet1")

SWB.Worksheets(i).Range(sadr).Copy

Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
End With


Конструкция призвана копипастить в нужное место конкретный диапазон всех листов конкретной книги , тесть собираю данные для сводной таблицы.
В коде опущены условия куда чего вставлять, дабы не засорять взгляд.


Вопрос простой: как вместо одной книги book1.xlsx проходить по нескольким книгам единожды обозначив их имена?
Понятно, что можно скопировать сам код нужное количество раз и прописав имена книг радоваться жизни. Но хочется чтобы было красиво. И уж больно много времени я на это убил - жалко впустую тратить)))
Изменено: Danmer - 27.01.2017 20:17:49
Защита листа макросом, снятие защиты
 
Уважаемые форумчане, подскажите пожалуйста в чем прикол.

Защищаю лист вот таким способом
Код
Sub Lock()
Dim ws As Worksheet
ws.Protect Password = "123", DrawingObjects:=False
End Sub
Далее пытаюсь снять защиту обычным способом.
Рецензирование->снять защиту листа
И пароль введенный в макросе 123 не подходит
При этом конструкция
Код
Sub UnLock_1()
ActiveSheet.Unprotect Password = "123"
End Sub
Прекрасно защиту снимает.
А мне надо чтобы обычный человек без помощи макроса штатным способом мог эту защиту снять.
Копирование со смещением или замена значений до вставки
 
Добрый день, уважаемые форумчане.

Столкнулся с такой задачей, нужно из левого столбца скопировать формулы (они же ссылки) через один с стролбец вправо.
При этом ссылка должна после копирования несколько преобразоваться.

Ссылка на файл вида [01_2016.xls]Sheet1'!A1 а нужно [02_2016.xls]Sheet1'!C1
т.е. нужно сначала сделать +1 к цифре в имени файла а затем заменить букву не на следующую а тоже на +1

Слепил такой простенькй макрос.
Код
Sub Draft()
Dim C As Range

For Each C In Range("AM8:AN73")

If C.Formula Like "='\\*" Then
C.Copy

C.Offset(, 1).PasteSpecial Paste:=xlPasteFormulas
End If
Next
end sub
Потом сломал всю голову как же решить проблему с изменением имени файла и смещением на столбец.

Можете помочь? Или подсказать направление куда копать.
Изменено: Danmer - 22.08.2016 21:36:16
"Найти и выделить" макросом
 
Доброго времени суток!
Уважаемые макрописатели, помогите пожалуйста довести до ума код.
Код
Sub Statment_prepare()
Sheets("Sheet1.").Range("AL74").End(xlToLeft).Offset(, -1).EntireColumn.Resize(, 2).Select 'выделяю два крайних левых столбца
Selection.Copy Destination:=Range("AL74").End(xlToLeft).Offset(, 2).EntireColumn 'вставляю выделнное с через один столбец
' до этого момента все работает, теперь начинается затык

Find("суммеслн").Select  'вот тут я хочу в выделенных крайних левых столбцах пройтись по всем ячейкам и заменить формулы вида "суммесли" на значения.

Макрос заменяющий формулы на значения у меня в арсенале есть. Фокус в том, что не получается элементарщина найти и выделить.
Что не так ???
Изменено: Danmer - 03.06.2016 18:47:36
Присвоение переменной значения ячейки
 
Помогите пожалуйста, что нужно исправить, чтобы этот код заработал:

Критично фильтровать именно через переменную, которая берет данные из ячейки.
Код
Dim End_date As String
Dim Start_date As String

Start_date = Range([A1]).Value
End_date = Range([B1]).Value
ActiveSheet.Range("$2:$100000").AutoFilter Field:=18, Operator:=xlFilterValues, Criteria1:=">=" & CLng("Start_date"), Operator:=xlAnd, Criteria2:="<=" & CLng("End_date")
Перебор листов и вставка линков в другую книгу
 
Добрый день.

Помогите пожалуйста оптимизировать макрос.
Смысл в том, чтобы в открытой книге в столбик выстроить ссылки на заданную ячейку каждого листа другой книги.

Он конечно работает, но наверняка листы другой книги можно перебирать как то более изящно.
Искал разные варианты ни один нормально не заработал
Код
Sub Link_paste()
Dim DestBook As String
Dim DR As String

DestBook = "book.xlsx" ' книга из которой берем ячейку
DR = "X63" ' ячейка на которую ссылаемся

On Error GoTo Errors1

Workbooks(DestBook).Activate
Worksheets(Index + 1).Activate 'вот это повторяется от 1 до 20 раз,
  Range(DR).Select
  Selection.Copy

Workbooks("Book2.xlsm").Activate 'рабочая книга куда вставляем линк
 
  Cells(Rows.Count, 2).End(xlUp).Offset(1).Select
  ActiveSheet.Paste link:=True

Workbooks(DestBook).Activate
Worksheets(Index + 2).Activate
  Range(DR).Select
  Selection.Copy

Workbooks("Book2.xlsm").Activate
 
  Cells(Rows.Count, 2).End(xlUp).Offset(1).Select
  ActiveSheet.Paste link:=True
  
  Workbooks(DestBook).Activate
Worksheets(Index + 3).Activate
  Range(DR).Select
  Selection.Copy

Workbooks("Book2.xlsm").Activate
 
  Cells(Rows.Count, 2).End(xlUp).Offset(1).Select
  ActiveSheet.Paste link:=True
  
Errors1:  MsgBox ("Достингут конец книги")

End Sub
Изменено: Danmer - 22.04.2016 10:57:46
[ Закрыто] Помогите написать макрос, Выделение ячеек по условию
 
Товарищи, а помогите пожалуйста написать макрос по теме.

Нужно выделить только ячейки вида:

=СУММ(A1:A10)+3

Не важно что в начале (хоть формула, хоть ссылка). Важно что на конце "+" или "-" константа
Изменено: Danmer - 14.03.2016 13:20:00
Страницы: 1
Наверх