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

Страницы: 1
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Добрый день, столкнулся с проблемой при обработке больших таблиц. Есть БД, данные их которой выгружаются в EXCEL, на листе формируется таблица состоящая из 60 тысяч строк (иногда меньше - до 30 тысяч) и содержащая 20-25 столбцов. В этой таблице необходимо в смежных сроках сравнивать ячейки и если эти ячейки совпадают, то эти строки сохранять, остальные удалять!
Написал 2 макроса, все работает, только если строк в таблице не более 10-15 тысяч, если больше - все ужасно тормозит, макрос выполняется час и более.Можно-ли это как-то решить.
P.S. все что может тормозить процесс из таблицы убрано имхо как: очищены форматы во всей таблице, убраны все возможные автофильтры, файл сохраняется как двоичная книга.
Изменено: Влад Турбин - 09.11.2016 20:57:33
Помогите с возможностью случайного выбора!
 
Добрый день.  
Необходимо при открытии Книги Excel автоматически запускать макрос, который случайным образом выбирает цитату и в дальнейшем, в определеный интервал времени случайным образом выбирать следующую цитату. В файле примера интервал задан 15 секунд. Однако не происходит случайного выбора, только частичный случайный выбор (из 3 варианта случайных цитат)
DataForm всплывающая подсказка?
 
Добрый день!  
Существует-ли способ, чтобу при наведении курсора мыши на Textbox в Dataform (Данные - Форма) созданном из таблицы появлялась всплывающая подсказка?
Формат даты предыдущий месяц
 
Добрый день!  
Подскажите!  
Необходимо макросом создавать папку и присваивать ей имя состояшее из даты в формате mmmm.yyyy + текст, однако mmmm - должен быть предыдущим. Т.е. если папка создается в сентябре, то имя ей присваивается август и т.д.  
 
Sub Создание_папки()  
Dim PathToSave As String, FolderName As String, FellPathToSave As String  
Dim fs As Object  
PathToSave = "C:\"  
FolderName = CStr(Format(Now, "mmmm.yyyy") & "Электроэнергия")  
FellPathToSave = PathToSave & FolderName & "\"  
Set fs = CreateObject("Scripting.FileSystemObject")  
If Not fs.FolderExists(FellPathToSave) Then  
  fs.CreateFolder (FellPathToSave)  
End If  
End Sub
Сделать ячейку активной по условию
 
Добрый день, уважаемые!  
Помогите составить код.  
Задача такова:  
На активном листе (в столбце А5:А350) необходимо выделить ячейку по условию  
 
Sub Кнопка8_НАЙТИ()  
Dim n, FF, Message, i, Obj, kk, firstAddress  
kk = "Номер записи не найден!"  
Message = "Введите порядковый № записи"  
FF = InputBox(Message)  
If FF = "" Then Exit Sub  
n = Worksheets.Count  
For i = 1 To n  
With Worksheets(i).Cells  
Set Obj = .Range(.Cells(4, 1), .Cells(350, 1)).Find(FF, LookIn:=xlValues)  
If Not Obj Is Nothing Then  
firstAddress = Obj.Address  
  Dim wsSh As Object  
  Sheets(i).Select  
.Range(firstAddress).Select  
GoTo m1  
Next  
FF = MsgBox(kk)  
If kk = "Номер записи не найден" Then Exit Sub  
m1:  
On Error Resume Next  
Application.Run "База.xls!Удаление"  
Range("I5").Select  
   Application.Run "База.xls!ВосстановитьИнтерфейс"  
   Application.Run "База.xls!УбратьВсё"  
End Sub
Изменение размера шрифта в зависимости от того текст это или данные
 
Добрый вечер, подскажите возможно ли, и если возможно,то как?  
 
В ячейке содержатся одновременно текст и данные, допустим гос. № автомобиля А123АА199, или мотоцикла А1234АА199, или транзитный АА123АА199. Необходимо что бы, размер шрифта текста (букв в номерном знаке) был 46, а размер шрифта цифр был 78.  
 
Спасибо
Компонент Microsoft Map более недоступен в Microsoft Excel 2003
 
Добрый вечер.  
На одном компьютере создал макросы, (в Excel 2003)макросы управляются элементами управления (кнопками).  
Перенес файл на другой компьютер, установлен то-же Excel 2003, при попытке активировать элемент управления выдаётся сообщение Компонент Microsoft Map более недоступен в Microsoft Excel 2003.  
 
Что это и как с этим бороться?
Однократный запуск макроса при открытии книги в диапазоне дат
 
Доброго времени суток!  
Возможно ли Private Sub Workbook_Open() написать так, что бы он ОДНОКРАТНО при наступлении события - 16, 17,или 18 числа каждого месяца запускал определенный макрос, т.е. Private Sub Workbook_Open() сработал 16, то, соответственно 17 и 18 он не запускается, если сработал 17, то, соответственно  18 он не запускается, при чем если открыли книгу 16, или 17, или 18 числа, потом закрыли и открыли повторно (в этот же день) Workbook_Open() больше бы не сработал?
Возможно ли в формулах использовать значение ячейки как имя Листа?
 
Допустим: Диапазон А:А (на Листе1) используется как оглавление книги, при чем при добавлении в книгу очередного листа, в диапазоне А:А появляется имя вновь созданного листа.  
В диапазоне В:В (на Листе1) находятся формулы с сылками на соответствующие листы.  
 
 
  !        А        !         В         !      
1 !    Имя Листа    !      Формула      !  
2 !      Лист2      !    ='Лист2'!F45   !  
3 !      Лист3      !    ='Лист3'!F45   !  
4 !      Лист4      !    ='Лист4'!F45   !  
5 !      Лист5      !    ='Лист5'!F45   !  
6 !      Лист6      !    ='Лист6'!F45   !  
7 !      Лист7      !    ='Лист7'!F45   !  
8 !      Лист8      !    ='Лист8'!F45   !  
Ну и так далее...  
Возможно ли вместо ='Лист7'!F45 использовать допустим =Лист1(Range("А7").Value)!F45  
 
Спасибо!
При отказе от продолжения операции необходимо выполнение одного (любого) условия
 
Что-то не понимаю!!  
Необходимо провести определенное действие по прекращению работы, т.е. при отказе от продолжения операции.  
Действия следующие:  
Или запустить        Application.Run "Пропуска.xls!Скрыть"  
 
Или вернуться на     For Each wsSh In ActiveWorkbook.Sheets  
       If wsSh.Name <> "Лист1" Then wsSh.Visible = xlSheetVeryHidden  
       Next wsSh  
 
Не пойму, при отказе от продолжения операции (пользователь нажал кнопку No.) все останавливается, а необходимо выполнение одного (любого) из условий указанных выше - или запустить другой макрос, или скрыть все листы кроме 1  
 
         
Sub Удаление_ТС()  
Dim Msg As String, MyString As String  
   Dim Btns As Integer  
   Dim Title As String, Help As String  
   Dim NmbCont As Integer, Result As Integer  
   Title = " УДАЛЕНИЕ ТРАНСПОРТНОГО СРЕДСТВА !"  
   Msg = "Удалить транспортноесредство и все записи о нём ?"  
   Btns = vbYesNo + vbQuestion + vbDefaultButton1  
   Result = MsgBox(Msg, Btns, Title, Help, NmbCont)  
   If Result = vbYes Then  
       MyString = "Да"  
ActiveCell.Offset(0, -2).Resize(, 6).Select  
   Selection.ClearContents  
   Selection.Interior.ColorIndex = 4  
   Range(Selection, Selection.End(xlToLeft)).Select  
   Selection.Interior.ColorIndex = 4  
   ActiveWindow.ScrollRow = 12  
   ActiveWindow.ScrollRow = 1  
   ActiveCell.Offset(1, 0).Resize(, 1).Select  
   If Selection.Text = "" Then  
     Call Удаление_2ТС  
  Else  
  End If  
       For Each wsSh In ActiveWorkbook.Sheets  
       If wsSh.Name <> "Лист1" Then wsSh.Visible = xlSheetVeryHidden  
       Next wsSh  
       Range("A1").Select  
         
       If Result = vbAbort Then        ' пользователь нажал кнопку No.  
       MyString = "Нет"             ' действия по прекращению работы  
       Application.Run "Пропуска.xls!Скрыть"  
End If  
End If  
End Sub
Выделить 6 ячеек от активной если активная ячейка определяется другим макросом
 
Необходимо выделить 6 ячеек вправо от активной, в которых могут содержаться, а могут и не содержаться значения.  
   Range(Selection, Selection.End(xlToRight)).Select не работает, т.к. ячейки справа могут быть заполнены, или не заполнены.  
Необходимо строго выделить 6 ячеек вправо от активной.  
Активная ячейка каждый разможет быть разной, т.к. она определяется другим макросом.  
 
Код такой  
 
Range(Selection, Selection.End(xlToRight)).Select  
Sheets(Range("A1").Value).Copy After:=Sheets(Sheets.Count)  
               Sheets(Sheets.Count).Name = "Поиск"  
               Selection.Copy  
   Sheets("Лист11").Select  
   Range("I29").Select  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=False  
   Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _  
       SkipBlanks:=False, Transpose:=False
Поиск в таблице нужной строки по минимальному значению
 
Добрый вечер  
Столкнулся с проблемой  
Ячейки в диапазоне A5:A314 пронумированы от 1 до 309  
Ячейки в диапазоне I5:I314 пронумированы от 1 до 309, но в зависимости от от того свободна ли соседняя ячейка(допустим F10), в диапазоне I5:I314, соответственно в ячейке I10 число не отображается.  
Соответственно, нумеруются только те ячейки, которы не заполнены.  
В ячейке G3 находится формула =МИН(I5:I349).  
Соответственно на основании значения ячейки G3 осуществляется выбор свободной ячейки с минимальным номером.  
Далее макрос осуществляет вставку значений в соседние ячейки  
 
Ситуация такая:  
Все работает, если минимальная свободная ячейка не под № 1  
Если минимальный номер свободной ячейки 1, то Selection.Find(What:=(Range("G3").Value), выделяет ячейку под номером 10  
Range("A5:A314").Select  
Selection.Find(What:=(Range("G3").Value), After:=ActiveCell, LookIn:=xlFormulas, _  
           LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _  
           MatchCase:=False, SearchFormat:=False).Select  
           ActiveCell.Next.Select  
Помогите, в чем дело не пойму!  
 
Полностью код такой:  
Private Sub CommandButton4_Click()  
With ThisWorkbook  
       nameWS = .ActiveSheet.Cells(5, 9)  
       If nameWS = "" Then  
           MsgBox " Арендатор не определен ! " & Chr(10) & _  
                  " Введите наименование арендатора ! ", vbCritical + vbOKOnly, ""  
           Exit Sub  
       End If  
   Range("L5").Select  
   Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _  
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _  
       ReplaceFormat:=False  
   Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _  
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _  
       ReplaceFormat:=False  
Application.DisplayAlerts = False  
   Range("J5:O5").Select  
   Selection.Copy  
   Application.Run "Пропуска.xls!Добавление_ТС"  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=False  
   Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _  
       SkipBlanks:=False, Transpose:=False  
   ActiveCell.Previous.Select  
   ActiveCell.Interior.ColorIndex = xlNone  
   Sheets(Range("I5").Value).Visible = xlSheetVeryHidden  
   Sheets("Лист1").Select  
   Application.CutCopyMode = False  
   Range("I5:O5").Select  
   Selection.ClearContents  
   Range("K14:O14").Select  
   Selection.ClearContents  
   Range("I5").Select  
End With  
End Sub  
 
Sub Добавление_ТС()  
Sheets(Range("I5").Value).Visible = xlSheetVisible  
Sheets(Range("I5").Value).Select  
ActiveWindow.SelectedSheets.Select  
Range("A5:A314").Select  
Selection.Find(What:=(Range("G3").Value), After:=ActiveCell, LookIn:=xlFormulas, _  
           LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _  
           MatchCase:=False, SearchFormat:=False).Select  
           ActiveCell.Next.Select  
End Sub
Остановить процедуру поиска InputBox(Message)начения ячейки в книге
 
Добрый день.  
Подскажите пожалуйста, как остановить выполнение процедуры поиска по следующим условиям: если InputBox(Message) не заполнен, или пользователь закрывает окно InputBox(Message), или выходит из InputBox(Message) кнопкой "Cancel".  
 
Поиск выполняется по "очень скрытым листам", если строка поиска заполнена, все работает отлично!  
 
В текущем коде, если окно InputBox(Message) не заполнено, а пользователь активирует кнопку "OK" или "Cancel", или закрывает окно InputBox(Message) процедура продолжает выполняться.  
 
Private Sub CommandButton6_Click()  
Dim n, FF, Message, i, Obj, kk, firstAddress  
kk = "Транспортное средство не найдено!"  
Message = "Введите подстроку поиска"  
FF = InputBox(Message)  
n = Worksheets.Count  
For i = 1 To n  
With Worksheets(i).Cells  
Set Obj = .Find(FF, LookIn:=xlValues)  
If Not Obj Is Nothing Then  
firstAddress = Obj.Address  
  Dim wsSh As Object  
  For Each wsSh In ActiveWorkbook.Sheets  
     If wsSh.Name <> "Лист1" Then wsSh.Visible = xlSheetVisible  
  Next wsSh  
Sheets(i).Select  
.Range(firstAddress).Select  
GoTo m1  
End If  
End With  
Next  
FF = MsgBox(kk)  
m1:  
On Error Resume Next  
ActiveCell.Offset(0, -3).Select  
Application.Run "Пропуска.xls!Поиск"  
End Sub
Ошибка Run-time error '9'
 
Добрый вечер.  
Помогитеобойти ошибку.  
Макрос выбирает лист имя которого указано в ячейке С9 и удаляет лист,также в столбце А выбирает значение (имя листа, которое указано в ячейке С9) и удаляет и столбца А ячейку с этим значением.  
Все отлично работает, однако если в ячейке С9 указано имя несуществующего листа вылезает ошибка.  
Вопрос? Как сделать, чтобы выполнение макроса останавливалось, сообщение об ошибке на появлялось.  
Вот код:  
 
Private Sub CommandButton2_Click()  
Sheets(Range("C9").Value).Select  
Application.DisplayAlerts = False  
ActiveWindow.SelectedSheets.Delete  
       Sheets("Лист1").Select  
       Columns("A:A").Select  
           Selection.Find(What:=(Range("C9").Value), After:=ActiveCell, LookIn:=xlFormulas, _  
           LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _  
           MatchCase:=False, SearchFormat:=False).Activate  
           ActiveCell.Delete  
               Range("C5").Select  
End Sub
Вставка в книгу нового листа и присвоение ему имени из определенной ячейки
 
Добрый день.  
Помогите решить проблему!  
Необходимо по клику на кнопке создавать новый лист и присваивать ему имя из ячейки А1.  
Написал код, лист создается, но ему присваивается имя "Лист1(А1)"  
 
Sub Макрос1()  
Sheets.Add.Activate  
           Application.ScreenUpdating = False  
           Application.DisplayAlerts = False  
           ActiveSheet.Name = CStr(Format(Now, "Лист1(A1)"))  
End Sub  
Спасибо
Не работает метод Select при копировании и вставке значений
 
Доброго времени суток!  
Не могу понять, почему возникает ошибка при копировании и вставке значений в другую книгу.  
Код такой:  
 
Private Sub CommandButton1_Click()  
   Range("G23").Select  
   Selection.Copy  
   ChDir "C:\Дир1"  
   Workbooks.Open Filename:="C:\Дир1\Книга1.xls"  
   Windows("Книга1.xls").Activate  
   Range("G18").Select  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=False  
   Application.CutCopyMode = False  
End Sub
При копировании диапазона и последующей вставке необходимо сохранить форматирование
 
ВОПРОС: Необходимо с помощью макроса копировать и вставлять (в другую книгу значения из диапазона данных сохраняя формат, размер и границы ячеек).  
Копируется и вставляется все, кроме размеров (высоты и строки и ширины столбца)  
Private Sub CommandButton7_Click()  
Dim Msg As String, MyString As String  
   Dim Btns As Integer  
   Dim Title As String, Help As String  
   Dim NmbCont As Integer, Result As Integer  
   Title = " Формирование отчета !"  
   Msg = "ВНИМАНИЕ ! ПРИ ФОРМИРОВАНИИ ОТЧЕТА БУДЕТ ПРОИЗВЕДЕНА АРХИВАЦИЯ ! ВСЕ ДАННЫЕ ВВЕДЕННЫЕ ЗА ТЕКУЩИЙ ПЕРИОД БУДУТ УДАЛЕНЫ !"               ' сообщение.  
   Btns = vbYesNo + vbCritical + vbDefaultButton2  
   Result = MsgBox(Msg, Btns, Title, Help, NmbCont)  
   If Result = vbYes Then  
       MyString = "Да"  
 
   Sheets("Лист2").Range("A1:GQ1992").Copy  
       Workbooks.Open Filename:="C:\Учет перевозок\АРХИВ.xls"  
           Application.ScreenUpdating = False  
           Dim sname As String  
           sname = CStr(Format(Now, "dd.mm.yy") & " М096ВО")  
           ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)  
           ActiveSheet.Name = sname  
               ActiveSheet.Paste  
               Application.CutCopyMode = False  
               ActiveWorkbook.Save  
               ActiveWindow.Close  
               Application.ScreenUpdating = True  
                   Sheets("Лист3").Range("A1:GQ1992").Copy  
                       Workbooks.Open Filename:="C:\Учет перевозок\АРХИВ.xls"  
                       Application.ScreenUpdating = False  
                       sname = CStr(Format(Now, "dd.mm.yy") & " М096 оборот")  
                       ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)  
                       ActiveSheet.Name = sname  
                           ActiveSheet.Paste  
                           Application.CutCopyMode = False  
                           ActiveWorkbook.Save  
                           ActiveWindow.Close  
                           Application.ScreenUpdating = True  
                               Sheets("Лист2").Columns("A:GU").Clear  
                               Sheets("Лист3").Columns("A:GU").Clear  
                               Sheets("Лист1").Select  
                               If Result = vbAbort Then  
                                   MyString = "Нет"  
 
                               End If  
                               End If  
                               Sheets("Лист4").Rows("6:60").Clear  
                               End Sub  
 
Пожалуйста как быть?
Макрос для автоматического создания листа и присвоения ему имени текушей даты
 
Доброго времени суток!  
Написал макрос, который создает в рабочей книге лист и переименовывает его в формат текущая дата (месяц) + постоянное значение (допустим гос. № автомобиля) используя функцию =СЦЕПИТЬ. Макрос работает, однако для отображения в ячейке текущей даты в формате (месяц) пришлось использовать функцию =ЕСЛИ(И, т.к. при присвоении имени листу дата выводится только в числовом формате (допустим 40564) и имя листа получается 40564 А 123 АА 199, а необходимо Январь А 123 АА 199.  
Повторяю, все работает, однако функция ЕСЛИ работает только с 7 аргументами (т.е. до Июля, а необходимо все 12 месяцев). Вот код макроса:  
Sub Макрос6()  
ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)  
   Range("A1").Select  
   ActiveCell.FormulaR1C1 = "=TODAY()"  
   Range("A2").Select  
   ActiveCell.FormulaR1C1 = "=MONTH(R[-1]C)"
   Range("A3").Select  
   ActiveCell.FormulaR1C1 = _  
       "=IF(AND(R[-1]C=1),""Январь"",IF(AND(R[-1]C=2),""Февраль"",IF(AND(R[-1]C=3),""Март"",IF(AND(R[-1]C=4),""Апрель"",IF(AND(R[-1]C=5),""Май"",IF(AND(R[-1]C=6),""Июнь"",IF(AND(R[-1]C=7),""Июль"",)))))))"
       Selection.Copy  
   Range("A4").Select  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=False  
   Application.CutCopyMode = False  
   Range("A5").Select  
   ActiveCell.FormulaR1C1 = " А 123 АА 199"  
   Range("A6").Select  
   ActiveCell.FormulaR1C1 = "=CONCATENATE(R[-2]C,R[-1]C)"
Dim myWorksheet As Worksheet  
For Each myWorksheet In Worksheets  
If myWorksheet.Range("A1").Value <> "" Then  
myWorksheet.Name = myWorksheet.Range("A6").Value  
End If  
Next  
   Range("A1:A6").Select  
   Selection.ClearContents  
   Range("A1").Select  
End Sub  
 
Прошу помогите!
Необходимо обойти ошибку Debug при удалении данных
 
Доброго времени суток!  
Перерыл все и не могу понять почему вылезает ошибка:  
К кнопке (размещенной на Листе1) привязан макрос, который выводит на печать Лист4 и Лист5, после этого необходимо на Листе5 или удалить, или очистить от значений и границ определенный диапазон.  
Прошу помощи!  
 
Private Sub CommandButton6_Click()  
   With Sheets("Лист4").Activate  
   Sheets("Лист4").Select  
   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True  
   End With  
       With Sheets("Лист5").Activate  
       Sheets("Лист5").Select  
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True  
       Rows("9:60").Select  
       Selection.Delete Shift:=xlUp  
       End With  
Sheets("Лист1").Activate  
Range("C4").Select  
End Sub
Перенос значений, форматов и границ ячеек по заданным условиям
 
На листе существует диапазон ячеек имеющих разное форматирование в моем примере на Листе1("N43:GX97"), необходимо по клику на кнопке "Сформировать путевой лист" копировать на другой лист (Лист2) каждый раз из этого диапазона только значения (а не формулы), сохраняя при этом форматы и размеры столбцов, строк и границы, с заданным количеством строк отступа. Все работает нормально, только если форматы совпадают (если нет объединенных ячеек), к примеру: отступ 3 ячейки, диапазон (А1:В6) спокойно копируется на другой лист в любое заданное место - допустим в диапазон (С4:D10) и далее с заданным отступом (С13:D18) далее (С21:D27) и т.д. Но как только дело доходит до копирования диапазона содержащего разные форматы ячеек начинается засада! Подскажите пожалуйста!  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
Копирование и вставка значений и форматов ячеек по условию
 
Уважаемые! Прошу помощи!  
Необходимо по клику копировать форматы и значения (не формулы!) из части одного листа (Лист1) в другой лист (Лист2) с отступом от последней заполненной ячейки второго листа.  
 
Написал код, без переменной Sheets("Лист2").Select код работает в пределах активного листа (Лист1) - копирует и вставляет после последней заполенной ячейки, однако если включить Sheets("Лист2").Select переносит значения и форматы но не работает отступ вставляет все в одно и тоже место!  
 
Private Sub CommandButton1_Click()  
Range("K6:Q22").Copy  
   n_ = 3 'количество строк отступа  
   r_ = WorksheetFunction.Max(22, Range("a" & Rows.Count).End(xlUp).Row)  
   Range("a" & r_ + n_).Select  
           Sheets("Лист2").Select  
           Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
           :=False, Transpose:=False  
           Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _  
           SkipBlanks:=False, Transpose:=False  
               Sheets("Лист").Select  
End Sub
Ошибка "Run-time error '1004' Метод Select из класса Range завершен неверно"
 
Доброго времени суток  
Дано:  
В корне диска С лежит папка "БИБЛИОТЕКА"  
В папке "БИБЛИОТЕКА" находятся 3 (или более) книги Exctll (Книга1.xls, Книга2.xls, Книга3.xls)  
На одном из листов в Книге1.xls находится элемент управления "КНОПКА" к которой прицеплен макрос.  
Необходимо:  
При нажатии на эту кнопку открывается и становится активна Книга2.xls, в этой книге становится активным определенный лист "Лист6", а на этом листе выделяется (как ЛКМ) диапазон ячеек (или одна необходимая ячейка)  
Макрос к кнопке прицеплен такой:  
   Private Sub CommandButton1_Click()  
      ChDir "C:\БИБЛИОТЕКА"  
      Workbooks.Open Filename:="C:\Книга2.xls"  
      Sheets("Лист6").Activate  
      Range("В12").Select  
   End Sub  
При выполнении макроса:  
Книга2 открывается и активна  
Лист6 активен  
Однако нужное выделение не происходит и вылезает системное сообщение "Run-time error '1004' Метод Select из класса Range завершен неверно"  
При этом, первым делом флажок на "Доверять доступ к VB Project" я установил  
Ошибку обойти не могу!  
Помогите!
Циклическое перемещение одной кнопкой по ячейкам
 
Доброго времени суток!  
Прошу помощи!  
Есть пост на другом форуме http://forum.msexcel.ru/index.php?action=printpage;topic=578.0  
А как сделать что-бы при нажатии на кнопку просто выделялся диапазон ячеек от С11 до Н20 и курсор помещался в ячейку С11, при следующем нажатии на ту же кнопку от С24 до Н33 и курсор помещался в ячейку С24 и так далее  
Да, и еще, кнопка должна находиться (например) на Листе1, а выделение происходить на Листе2
Страницы: 1
Наверх