Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Обращение макроса к активному листу - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обращение макроса к активному листу (Макросы/Sub)
Обращение макроса к активному листу
Влад777 Дата: Среда, 01.07.2015, 15:02 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день! Есть такой макрос.

[vba]
Код

Windows("Приложение 1_код 39.xlsx").Activate
Sheets("ПРИЛОЖЕНИЕ 1").Select
  Set c = Columns(2).Find("*", searchdirection:=xlPrevious)
    If c Is Nothing Then
       Cells(1, 2).Select
    Else
       c.Offset(1, 0).Select
    End If
     ActiveCell.FormulaR1C1 = "=[Книга3.xlsm]Лист1!R2C79"
    iRow = Columns("B").Find(What:="*", LookIn:=xlValues, searchdirection:=xlPrevious, SearchOrder:=xlByRows).Row
     Selection.Copy
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
         :=False, Transpose:=False
[/vba]

Как сделать так, чтобы он обращался не к конкретному листу "Лист1" файла "Книга3.xlsm", а просто к активному листу данного файла безотносительно его наименования?
 
Ответить
СообщениеДобрый день! Есть такой макрос.

[vba]
Код

Windows("Приложение 1_код 39.xlsx").Activate
Sheets("ПРИЛОЖЕНИЕ 1").Select
  Set c = Columns(2).Find("*", searchdirection:=xlPrevious)
    If c Is Nothing Then
       Cells(1, 2).Select
    Else
       c.Offset(1, 0).Select
    End If
     ActiveCell.FormulaR1C1 = "=[Книга3.xlsm]Лист1!R2C79"
    iRow = Columns("B").Find(What:="*", LookIn:=xlValues, searchdirection:=xlPrevious, SearchOrder:=xlByRows).Row
     Selection.Copy
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
         :=False, Transpose:=False
[/vba]

Как сделать так, чтобы он обращался не к конкретному листу "Лист1" файла "Книга3.xlsm", а просто к активному листу данного файла безотносительно его наименования?

Автор - Влад777
Дата добавления - 01.07.2015 в 15:02
KSV Дата: Среда, 01.07.2015, 15:09 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
[vba]
Код
ActiveCell.FormulaR1C1 = "=R2C79"
[/vba]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеДобрый день!
[vba]
Код
ActiveCell.FormulaR1C1 = "=R2C79"
[/vba]

Автор - KSV
Дата добавления - 01.07.2015 в 15:09
Макрописец Дата: Среда, 01.07.2015, 15:14 | Сообщение № 3
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Или так:
[vba]
Код
Windows("Приложение 1_код 39.xlsx").Activate
With ActiveSheet
Set c = Columns(2).Find("*", searchdirection:=xlPrevious)
       If c Is Nothing Then
       Cells(1, 2).Select
       Else
       c.Offset(1, 0).Select
       End If
       ActiveCell.FormulaR1C1 = "=[Книга3.xlsm]Лист1!R2C79"
       iRow = Columns("B").Find(What:="*", LookIn:=xlValues, searchdirection:=xlPrevious, SearchOrder:=xlByRows).Row
       Selection.Copy
       Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
           :=False, Transpose:=False
End With
[/vba]


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!

Сообщение отредактировал Макрописец - Среда, 01.07.2015, 15:15
 
Ответить
СообщениеИли так:
[vba]
Код
Windows("Приложение 1_код 39.xlsx").Activate
With ActiveSheet
Set c = Columns(2).Find("*", searchdirection:=xlPrevious)
       If c Is Nothing Then
       Cells(1, 2).Select
       Else
       c.Offset(1, 0).Select
       End If
       ActiveCell.FormulaR1C1 = "=[Книга3.xlsm]Лист1!R2C79"
       iRow = Columns("B").Find(What:="*", LookIn:=xlValues, searchdirection:=xlPrevious, SearchOrder:=xlByRows).Row
       Selection.Copy
       Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
           :=False, Transpose:=False
End With
[/vba]

Автор - Макрописец
Дата добавления - 01.07.2015 в 15:14
Влад777 Дата: Среда, 01.07.2015, 15:22 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
KSV,
[vba]
Код

ActiveCell.FormulaR1C1 = "=R2C79"
[/vba]

Такой вариант не подходит - макрос не видит к какому файлу надо обращаться. Необходимо сохранить отсылку к файлу Книга3.
 
Ответить
СообщениеKSV,
[vba]
Код

ActiveCell.FormulaR1C1 = "=R2C79"
[/vba]

Такой вариант не подходит - макрос не видит к какому файлу надо обращаться. Необходимо сохранить отсылку к файлу Книга3.

Автор - Влад777
Дата добавления - 01.07.2015 в 15:22
SkyPro Дата: Среда, 01.07.2015, 15:27 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Ну так обращайтесь к файлу. В чем проблема? Можно в начале макроса вообще сделать так:
[vba]
Код

Dim wb: Set wb = workbooks("Приложение 1_код 39")
wb.Activate
Debug.Print ActiveWorkbook.Name
Debug.Print ActiveSheet.Name
Debug.Print ActiveCell.Address
[/vba]


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Среда, 01.07.2015, 15:28
 
Ответить
СообщениеНу так обращайтесь к файлу. В чем проблема? Можно в начале макроса вообще сделать так:
[vba]
Код

Dim wb: Set wb = workbooks("Приложение 1_код 39")
wb.Activate
Debug.Print ActiveWorkbook.Name
Debug.Print ActiveSheet.Name
Debug.Print ActiveCell.Address
[/vba]

Автор - SkyPro
Дата добавления - 01.07.2015 в 15:27
Влад777 Дата: Среда, 01.07.2015, 15:29 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Макрос в файле Приложение 1...копирует ячейку из файла Книга 3. Мне необходимо чтобы он копировал не из конкретного листf, а просто из активного листа...
 
Ответить
СообщениеМакрос в файле Приложение 1...копирует ячейку из файла Книга 3. Мне необходимо чтобы он копировал не из конкретного листf, а просто из активного листа...

Автор - Влад777
Дата добавления - 01.07.2015 в 15:29
Влад777 Дата: Среда, 01.07.2015, 15:33 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
SkyPro, Как в таком случае будет выглядеть строчка?

[vba]
Код

  ActiveCell.FormulaR1C1 = "=[Книга3.xlsm]Лист1!R2C79"
[/vba]

В ней и проблема...Мне надо избавится от "Лист1" и заменить на просто активный лист....
 
Ответить
СообщениеSkyPro, Как в таком случае будет выглядеть строчка?

[vba]
Код

  ActiveCell.FormulaR1C1 = "=[Книга3.xlsm]Лист1!R2C79"
[/vba]

В ней и проблема...Мне надо избавится от "Лист1" и заменить на просто активный лист....

Автор - Влад777
Дата добавления - 01.07.2015 в 15:33
Manyasha Дата: Среда, 01.07.2015, 15:35 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Влад777, да без разницы какая книга, Вам просто показали, как получить ее имя и имя активного листа.
Так подойдет?[vba]
Код
Set wb3 = Workbooks("Книга3.xlsm")
shName = wb3.ActiveSheet.Name
ActiveCell.FormulaR1C1 = "=[" & wb3.Name & "]" & shName & "!R2C1"
[/vba]


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Среда, 01.07.2015, 15:36
 
Ответить
СообщениеВлад777, да без разницы какая книга, Вам просто показали, как получить ее имя и имя активного листа.
Так подойдет?[vba]
Код
Set wb3 = Workbooks("Книга3.xlsm")
shName = wb3.ActiveSheet.Name
ActiveCell.FormulaR1C1 = "=[" & wb3.Name & "]" & shName & "!R2C1"
[/vba]

Автор - Manyasha
Дата добавления - 01.07.2015 в 15:35
RAN Дата: Среда, 01.07.2015, 15:37 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
ActiveCell.FormulaR1C1 = "=[" & ActiveWorkbook.Name & "]" & "ActiveSheet.Name" & "!R2C79"
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
ActiveCell.FormulaR1C1 = "=[" & ActiveWorkbook.Name & "]" & "ActiveSheet.Name" & "!R2C79"
[/vba]

Автор - RAN
Дата добавления - 01.07.2015 в 15:37
Влад777 Дата: Среда, 01.07.2015, 15:45 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Manyasha, Большое спасибо...все хорошо работает...
 
Ответить
СообщениеManyasha, Большое спасибо...все хорошо работает...

Автор - Влад777
Дата добавления - 01.07.2015 в 15:45
Макрописец Дата: Среда, 01.07.2015, 16:05 | Сообщение № 11
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Влад777,
А мой вариант?


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеВлад777,
А мой вариант?

Автор - Макрописец
Дата добавления - 01.07.2015 в 16:05
Влад777 Дата: Четверг, 02.07.2015, 09:47 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Макрописец, добрый день...

Ваш вариант все равно обращается к конкретному листу "Лист1". Именно в этой строчке у меня и была проблема....Как раз, ее и исправила мне Manyasha.
 
Ответить
СообщениеМакрописец, добрый день...

Ваш вариант все равно обращается к конкретному листу "Лист1". Именно в этой строчке у меня и была проблема....Как раз, ее и исправила мне Manyasha.

Автор - Влад777
Дата добавления - 02.07.2015 в 09:47
Макрописец Дата: Четверг, 02.07.2015, 10:52 | Сообщение № 13
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Влад777,
Ну я уже понял.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеВлад777,
Ну я уже понял.

Автор - Макрописец
Дата добавления - 02.07.2015 в 10:52
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обращение макроса к активному листу (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!