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

Вход

Регистрация

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

 

= Мир MS Excel/прописать в макросе название книги с ячейки - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
прописать в макросе название книги с ячейки
RAN Дата: Пятница, 07.12.2012, 21:48 | Сообщение № 21
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Serge_007, можно еще так
[vba]
Code
FName = Cells(1, 2).Value & ".*"
[/vba]
Правда открыть базу данных ЦРУ таким кодом не получится. tongue biggrin


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 07.12.2012, 21:50
 
Ответить
СообщениеSerge_007, можно еще так
[vba]
Code
FName = Cells(1, 2).Value & ".*"
[/vba]
Правда открыть базу данных ЦРУ таким кодом не получится. tongue biggrin

Автор - RAN
Дата добавления - 07.12.2012 в 21:48
Imba_Ra Дата: Суббота, 08.12.2012, 09:52 | Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 20% ±

Цитата RAN
FName = Cells(1, 2).Value & ".*"

попробовал применить
в этом макросе
[vba]
Код

Sub get1()

'On Error GoTo Errors1 'обработок ошибок
Dim wb As Workbook, FName, FPath
FName = Cells(1, 2).Value & ".xlsx" 'имя файла
FPath = Cells(2, 2).Value 'путь к файлу
'
If Cells(1, 2).Value = "" Or Cells(1, 2).Value = "" Then Exit Sub
Application.ScreenUpdating = 0
'проверяем открыть ли файл: если нет, тогда открываем
If IsFileOpen(FPath & "\" & FName) = False Then
Set wb = GetObject(FPath & "\" & FName) 'открываем скрыто
Else: Set wb = Workbooks(FName)
End If
'если имя файла соовпадает с этим файлом, тогда выходим
If wb.Name = ThisWorkbook.Name Then Exit Sub

Set c = wb.Worksheets("Лист1").Range("A1:K20").Find("Заемщик", LookIn:=xlValues) 'Диапазон ячеек ГДЕ ищем
If Not c Is Nothing Then
Application.GoTo c, True
With ThisWorkbook.Worksheets("Отчет")
Range(Cells(ActiveCell.Row, ActiveCell.Column + 1), Cells(ActiveCell.Row + 3, ActiveCell.Column + 1)).Copy _
Destination:=.Cells(4, 2) 'копируем данные
End With
Else: ThisWorkbook.Worksheets("Отчет").Range("B4:B6").Value = ""
End If
ThisWorkbook.Activate
'закрываем файл без сохранении
'wb.Close 0
'если где та вылетить ошибка, тогда очищаем данные с ячеек "B4:B6"
GoTo Ends:
Errors1:
ThisWorkbook.Worksheets("Отчет").Range("B4:B6").Value = ""
Ends:
Application.ScreenUpdating = 1

End Sub
[/vba]

ругается на
[vba]
Код

Else: Set wb = Workbooks(FName)
[/vba]


Сообщение отредактировал Imba_Ra - Суббота, 08.12.2012, 09:54
 
Ответить
Сообщение
Цитата RAN
FName = Cells(1, 2).Value & ".*"

попробовал применить
в этом макросе
[vba]
Код

Sub get1()

'On Error GoTo Errors1 'обработок ошибок
Dim wb As Workbook, FName, FPath
FName = Cells(1, 2).Value & ".xlsx" 'имя файла
FPath = Cells(2, 2).Value 'путь к файлу
'
If Cells(1, 2).Value = "" Or Cells(1, 2).Value = "" Then Exit Sub
Application.ScreenUpdating = 0
'проверяем открыть ли файл: если нет, тогда открываем
If IsFileOpen(FPath & "\" & FName) = False Then
Set wb = GetObject(FPath & "\" & FName) 'открываем скрыто
Else: Set wb = Workbooks(FName)
End If
'если имя файла соовпадает с этим файлом, тогда выходим
If wb.Name = ThisWorkbook.Name Then Exit Sub

Set c = wb.Worksheets("Лист1").Range("A1:K20").Find("Заемщик", LookIn:=xlValues) 'Диапазон ячеек ГДЕ ищем
If Not c Is Nothing Then
Application.GoTo c, True
With ThisWorkbook.Worksheets("Отчет")
Range(Cells(ActiveCell.Row, ActiveCell.Column + 1), Cells(ActiveCell.Row + 3, ActiveCell.Column + 1)).Copy _
Destination:=.Cells(4, 2) 'копируем данные
End With
Else: ThisWorkbook.Worksheets("Отчет").Range("B4:B6").Value = ""
End If
ThisWorkbook.Activate
'закрываем файл без сохранении
'wb.Close 0
'если где та вылетить ошибка, тогда очищаем данные с ячеек "B4:B6"
GoTo Ends:
Errors1:
ThisWorkbook.Worksheets("Отчет").Range("B4:B6").Value = ""
Ends:
Application.ScreenUpdating = 1

End Sub
[/vba]

ругается на
[vba]
Код

Else: Set wb = Workbooks(FName)
[/vba]

Автор - Imba_Ra
Дата добавления - 08.12.2012 в 09:52
Imba_Ra Дата: Суббота, 08.12.2012, 09:57 | Сообщение № 23
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 20% ±

Serge_007, Наверно не так объяснил, нужно сделать так, чтобы можно было работать с любой версией excel (.xls или .xlsx или .xlsm)
 
Ответить
СообщениеSerge_007, Наверно не так объяснил, нужно сделать так, чтобы можно было работать с любой версией excel (.xls или .xlsx или .xlsm)

Автор - Imba_Ra
Дата добавления - 08.12.2012 в 09:57
Imba_Ra Дата: Суббота, 08.12.2012, 09:59 | Сообщение № 24
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 20% ±

Вот для примера файлы
К сообщению приложен файл: 1215340-1-.xlsm (19.5 Kb) · 1083879.xlsx (8.7 Kb)


Сообщение отредактировал Imba_Ra - Суббота, 08.12.2012, 10:00
 
Ответить
СообщениеВот для примера файлы

Автор - Imba_Ra
Дата добавления - 08.12.2012 в 09:59
ABC Дата: Суббота, 08.12.2012, 12:42 | Сообщение № 25
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
Dir помог
К сообщению приложен файл: 6054475.xlsm (19.3 Kb)


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
СообщениеDir помог

Автор - ABC
Дата добавления - 08.12.2012 в 12:42
RAN Дата: Суббота, 08.12.2012, 20:27 | Сообщение № 26
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Quote (ABC)
Dir помог

Утром не сумел ответить.
Конструкция "*.*" может работать только там, где предусмотрен выбор, например DIR и т.п.
Set wb = предусматривает работу с одним конкретным файлом.
В этом случае нужно использовать цикл и like.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Quote (ABC)
Dir помог

Утром не сумел ответить.
Конструкция "*.*" может работать только там, где предусмотрен выбор, например DIR и т.п.
Set wb = предусматривает работу с одним конкретным файлом.
В этом случае нужно использовать цикл и like.

Автор - RAN
Дата добавления - 08.12.2012 в 20:27
ABC Дата: Суббота, 08.12.2012, 20:56 | Сообщение № 27
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
Андрей, цикл на расширение?, расш=Array("xls", "xlsx", "xlsm") или не так?


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
СообщениеАндрей, цикл на расширение?, расш=Array("xls", "xlsx", "xlsm") или не так?

Автор - ABC
Дата добавления - 08.12.2012 в 20:56
RAN Дата: Суббота, 08.12.2012, 21:14 | Сообщение № 28
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Сообщение 19, п.2
[vba]
Code
If .......  Like "Даулет.*" Then
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 08.12.2012, 21:21
 
Ответить
СообщениеСообщение 19, п.2
[vba]
Code
If .......  Like "Даулет.*" Then
[/vba]

Автор - RAN
Дата добавления - 08.12.2012 в 21:14
Imba_Ra Дата: Суббота, 08.12.2012, 22:39 | Сообщение № 29
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 20% ±

всем спасибо! буду проверять на работе
 
Ответить
Сообщениевсем спасибо! буду проверять на работе

Автор - Imba_Ra
Дата добавления - 08.12.2012 в 22:39
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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