excel нельзя установить свойство visible класса worksheet
Excel нельзя установить свойство visible класса worksheet
Доброго времени суток всем.
Книга открывается без пароля, но в VBA видно,что пароль есть. Я знаю пароль книги но как его ввести в VBA не знаю.
Листы без пароля. Не могу отобразить Лист №2. На снимках видно, что
скрыть отобразить литы не возможно, поскольку функция «НЕ АКТИВНА». Знаю, что виноват МАКРОС.
Но,что и как делать без понятия. Ни на одном форуме не нашел. Если меняю 0-xlSheetHiden на 1-xlSheetVisible вылазит сообщение:
» Нельзя установить свойство Visible класса Worksheet «.
Доброго времени суток всем.
Книга открывается без пароля, но в VBA видно,что пароль есть. Я знаю пароль книги но как его ввести в VBA не знаю.
Листы без пароля. Не могу отобразить Лист №2. На снимках видно, что
скрыть отобразить литы не возможно, поскольку функция «НЕ АКТИВНА». Знаю, что виноват МАКРОС.
Но,что и как делать без понятия. Ни на одном форуме не нашел. Если меняю 0-xlSheetHiden на 1-xlSheetVisible вылазит сообщение:
» Нельзя установить свойство Visible класса Worksheet «.
Не верьте, что Вы не рабы.
Доброго времени суток всем.
Книга открывается без пароля, но в VBA видно,что пароль есть. Я знаю пароль книги но как его ввести в VBA не знаю.
Листы без пароля. Не могу отобразить Лист №2. На снимках видно, что
скрыть отобразить литы не возможно, поскольку функция «НЕ АКТИВНА». Знаю, что виноват МАКРОС.
Но,что и как делать без понятия. Ни на одном форуме не нашел. Если меняю 0-xlSheetHiden на 1-xlSheetVisible вылазит сообщение:
» Нельзя установить свойство Visible класса Worksheet «.
Ошибка времени выполнения VBA 1004 Ошибка, определяемая приложением или объектом
С помощью форума Excel я создал форму входа в систему, в которой у меня 5 пользователей. Каждый пользователь может иметь доступ только к назначенным ему листам. Это нормально работает. Но теперь я защитил «структуру книги», чтобы избежать добавления / удаления листов пользователями. Затем я снова вхожу в систему, и вместо отображения формы входа в Excel VBA появляется сообщение об ошибке:
Ошибка-1004 Невозможно установить видимое свойство класса рабочего листа
Когда я отлаживаю, ошибка выделяется в следующих кодах, где для свойства visible листа установлено значение «True», «False» или «xlSheetVeryHidden».
Есть ли способ исправить это, чтобы я мог получить доступ к форме входа в систему, как это было до введения пароля, защищающего «структуру книги»?
Вот еще одно беспокойство по этому поводу.
Вы можете НЕ скрывать ВСЕ рабочих листов в книге. Таким образом, если вы знаете, что у вас будет хотя бы 1 лист, который ВСЕГДА будет виден, исключите его из процесса скрытия.
Была ли открыта еще одна рабочая книга Excel при ее тестировании? Здесь нет явной ссылки на книгу, которую вы ищете, поэтому, если вы запустите этот код с книгой, в которой лист «Всплеск» недоступен, макрос попытается сделать все листы скрытыми, что может вызвать эту ошибку.
Чтобы смоделировать это, откройте новый сеанс Excel и запустите этот макрос:
Если я лаю не на то дерево, вы получите ту же ошибку.
Чтобы решить эту проблему, просто добавьте имя книги в свой цикл, и это будет примерно так (очевидно, вы должны убедиться, что есть лист «Всплеск», иначе возникнет ошибка):
Вам придется снимать и повторно защищать код. Обратной стороной является то, что ваш пароль будет в коде.
Теперь Excel открывает файл без видимого рабочего листа.
Excel нельзя установить свойство visible класса worksheet
Обсуждаем вопросы только по Excel VBA (программирование макросов, скриптов, пользовательских функций и т.п.). Приветствуются ссылки на ресурсы и справочную литературу по теме.
Вопросы по работе с MS Excel, не относящиеся к программированию, задаем в теме Excel FAQ
Обратите внимание, этот топик для помощи в изучении и использовании VBA. Посему запросы типа «Напишите мне такой-то макрос, я VBA не знаю и знать не хочу» не приветствуются. Древняя мудрость: «Накорми голодного рыбой и он погибнет, научи его ловить рыбу и ты спасешь его.»(R)
Добавление в главное меню своего пункта, ассоциированного с макросом Создание ярлыка на рабочем столе Снятие защиты листа при забытом пароле Смена раскладки клавиатуры Скролл формы колесом прокрутки мыши Оптимизация кода по быстродействию использованием массивов Найти «чужое» окно и нажать в нем кнопку ( вписать текст в текстовое поле ) Работа с UNICODE-символами в VBA: запись, чтение из ячейки, перевод в ASС и обратно Как программно подключить дополнительные библиотеки (например, «Microsoft Scripting Runtime» или «Microsoft ActiveX Data Objects 2.8 Library) через References
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Спасибо за ответ. Применил эту команду в такой конструкции:
Private Sub CommandButton1_Click() ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=»», SubAddress:=»Лист4!R1C1″, TextToDisplay:=»Лист4″ End Sub
При нажатии на кнопку, на листе появляется ссылка на лист 4 и только при нажатии на эту ссылку происходит переход на лист 4.
Я бы хотел, чтобы: 1. переход на другой лист происходил непосредственно при нажатии на кнопку; 2. и адрес листа задавался бы не его порядковым номером в книге (SubAddress:=»Лист4!R1C1″), а именем листа.
Буду признателен за помощь
Всего записей: 5 | Зарегистр. 09-12-2008 | Отправлено:14:05 09-12-2008
ITradar
| A | B | C | D 1 |Планы расходов. |Бюджет:|7385 |руб 2 |Приорите|Необходимо |Цена |Остаток 3 | 1 |Набор резцов|2000 |=D1-C3=5385 4 | 2 |Фоторамки |600 |=D3-C4=4785 5 | 3 |Привод DVD |900 |=D4-C5=3885 6 | 4 |HDD 300Гб |2500 |=D5-C6=1385
Sub SelectedUP() ‘ ‘ SelectedUP Макрос ‘ Макрос записан 18.10.2008 (Radmir) ‘ ‘ Сочетание клавиш: Ctrl+u ‘ Dim UpRow As Integer
Ошибка: Run-time error ‘424’ object required
Когда у меня был код по проще, у меня смена местами получалась, но результаты формул Остатков не менялись, так как менялись сами формулы, как бы привязываясь к строкам.
Sub SelectedUP() ‘ ‘ SelectedUP Макрос ‘ Макрос записан 18.10.2008 (Radmir) ‘ ‘ Сочетание клавиш: Ctrl+u ‘ Dim UpRow As Integer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору добрый день нужна ваша помощь. есть такая задача : имееться: имя пациента, дата прибытия, дата отбытия и палата. нужно на соседнем sheet’e заполнить своеобразный каллендарь, который выгледит вот так : 201 202 203 204 205 206 207 208 209 210 301 302 303 2008.12.01 x 2008.12.02 x 2008.12.03 x x 2008.12.04 x x x 2008.12.05 x x 2008.12.06 x x 2008.12.07 x 2008.12.08 x 2008.12.09 x x 2008.12.10 x 2008.12.11 т.е. палата 201 занята с первого декабря по 4ое палата 207 с 4 по 9ое 302 с 3ого по 6ое и с 9 и до 10ого как это реализовать в виде макроса? я как бы могу найти строку с датой отбытия и прибытия пациента, могу найти столбез с палатой, но вот как в писать в эту своебразную матрицу креситики(или как либо по другому отметить) в занятые палаты.
Всего записей: 38 | Зарегистр. 17-03-2008 | Отправлено:16:22 09-12-2008
miha7411
Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Alex209 На листе поместить кнопку и назначить ей макрос. Вот как-то так.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору TURNSKIN85 Находишь сроку с датой и столбец с палатой Обозначим n-номер строки с датой, m-номер столбца с палатой cells(n,m)=»x»
Всего записей: 49 | Зарегистр. 15-10-2008 | Отправлено:06:47 10-12-2008
Всего записей: 95 | Зарегистр. 16-07-2007 | Отправлено:18:13 10-12-2008
Mont1
Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору TURNSKIN85 Я незнаю как работает оператор Find, предлагаю другой способ
Dim FoundCell As Range For Each FoundCell In Range(«A1:A63») If FoundCell.Value = «09.12.2008» Then m = FoundCell.Column ‘Номер столбца n = FoundCell.Row’ Номер строки End If Next
Всего записей: 49 | Зарегистр. 15-10-2008 | Отправлено:03:41 11-12-2008
ITradar
Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Спасибо ОГРОМНОЕ за уделенное внимание. Всё отлично получилось! Привожу полностью завершенное решение, надеюсь табличка с этими макросами будет полезна при планировании покупок, расходов, или просто для планирования решения задач по степени их важности!
Sub SelectedUP() ‘ ‘ SelectedUP Макрос ‘ Макрос записан 18.10.2008 (Radmir) ‘ ‘ Сочетание клавиш: Ctrl+Shift+J ‘
Dim UpRow As Integer
Sub SelectedDown() ‘ ‘ SelectedDown Макрос ‘ Макрос записан 10.12.2008 (Radmir) ‘ ‘ Сочетание клавиш: Ctrl+Shift+M ‘
Excel нельзя установить свойство visible класса worksheet
Помню тут уже была подобная тема но я что-то ее пока не сумел найти.
Желательно что бы страницы соответствующие данному паролю были доступны для редактирования и просмотра другие не доступны для редактирования и просмотра.
Помню тут уже была подобная тема но я что-то ее пока не сумел найти.
Желательно что бы страницы соответствующие данному паролю были доступны для редактирования и просмотра другие не доступны для редактирования и просмотра.
Помню тут уже была подобная тема но я что-то ее пока не сумел найти.
Желательно что бы страницы соответствующие данному паролю были доступны для редактирования и просмотра другие не доступны для редактирования и просмотра.
koyaanisqatsi
Дата: Пятница, 15.04.2016, 10:08 | Сообщение № 2
Хороший пример только видны все страницы. Хотелось бы чтоб под каждым паролем были доступны свои страницы.
Хороший пример только видны все страницы. Хотелось бы чтоб под каждым паролем были доступны свои страницы. koyaanisqatsi
Pelena
Дата: Пятница, 15.04.2016, 10:16 | Сообщение № 4
koyaanisqatsi
Дата: Пятница, 15.04.2016, 10:20 | Сообщение № 6
_Boroda_
Дата: Пятница, 15.04.2016, 10:31 | Сообщение № 7
koyaanisqatsi
Дата: Пятница, 15.04.2016, 10:38 | Сообщение № 8
koyaanisqatsi
Дата: Пятница, 15.04.2016, 11:09 | Сообщение № 9
_Boroda_, На листе «доп» изобразил права доступа, помогите пожалуйста в соответствии с этим правилами раздать доступ.
_Boroda_, На листе «доп» изобразил права доступа, помогите пожалуйста в соответствии с этим правилами раздать доступ.
Сообщение _Boroda_, На листе «доп» изобразил права доступа, помогите пожалуйста в соответствии с этим правилами раздать доступ.
SLAVICK
Дата: Пятница, 15.04.2016, 11:34 | Сообщение № 10
200?’200px’:»+(this.scrollHeight+5)+’px’);»> Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> «B2» Then Exit Sub On Error Resume Next p_ = WorksheetFunction.VLookup(Range(«B1»), Лист4.[A2:B999], 2, False) shs = WorksheetFunction.VLookup(Range(«B1»), Лист4.[A2:c999], 3, False) On Error GoTo 0 If Range(«B2») <> p_ Then MsgBox «Неверный пароль»: Exit Sub sk_ = ThisWorkbook.Sheets.Count sa_ = ActiveSheet.Name
If Len(shs) = 0 Then For i = 2 To ThisWorkbook.Sheets.Count Sheets(i).Visible = xlSheetVisible Next Else For i = 2 To ThisWorkbook.Sheets.Count Sheets(i).Visible = IIf(InStr(1, shs, ThisWorkbook.Sheets(i).Name, vbTextCompare) = 0, xlSheetVeryHidden, xlSheetVisible) Next End If End Sub
200?’200px’:»+(this.scrollHeight+5)+’px’);»> Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> «B2» Then Exit Sub On Error Resume Next p_ = WorksheetFunction.VLookup(Range(«B1»), Лист4.[A2:B999], 2, False) shs = WorksheetFunction.VLookup(Range(«B1»), Лист4.[A2:c999], 3, False) On Error GoTo 0 If Range(«B2») <> p_ Then MsgBox «Неверный пароль»: Exit Sub sk_ = ThisWorkbook.Sheets.Count sa_ = ActiveSheet.Name
If Len(shs) = 0 Then For i = 2 To ThisWorkbook.Sheets.Count Sheets(i).Visible = xlSheetVisible Next Else For i = 2 To ThisWorkbook.Sheets.Count Sheets(i).Visible = IIf(InStr(1, shs, ThisWorkbook.Sheets(i).Name, vbTextCompare) = 0, xlSheetVeryHidden, xlSheetVisible) Next End If End Sub
200?’200px’:»+(this.scrollHeight+5)+’px’);»> Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> «B2» Then Exit Sub On Error Resume Next p_ = WorksheetFunction.VLookup(Range(«B1»), Лист4.[A2:B999], 2, False) shs = WorksheetFunction.VLookup(Range(«B1»), Лист4.[A2:c999], 3, False) On Error GoTo 0 If Range(«B2») <> p_ Then MsgBox «Неверный пароль»: Exit Sub sk_ = ThisWorkbook.Sheets.Count sa_ = ActiveSheet.Name
If Len(shs) = 0 Then For i = 2 To ThisWorkbook.Sheets.Count Sheets(i).Visible = xlSheetVisible Next Else For i = 2 To ThisWorkbook.Sheets.Count Sheets(i).Visible = IIf(InStr(1, shs, ThisWorkbook.Sheets(i).Name, vbTextCompare) = 0, xlSheetVeryHidden, xlSheetVisible) Next End If End Sub
koyaanisqatsi
Дата: Пятница, 15.04.2016, 11:42 | Сообщение № 11
koyaanisqatsi
Дата: Среда, 18.05.2016, 14:00 | Сообщение № 12
SLAVICK, Здравствуй. Что-то я поломал. И не знаю куда искать где смотреть. При выборе пользователя и ввода пароля 444 Макрос выдает ошибку дебаг или ЕНД предлагает поискать проблему в этой строке.
Что привело к поломке не знаю. Добавлял страницы удалял ненужные. Добавлял в список отображаемых еще страниц. Но уже в сломанном файле делал многое чтобы понять в чем причина и список страниц корректировал убавлял его до одной. Пока ничего не помогло.
Ошибка: Нельзя установить свойство Visible класса Workshieet
Причем если сначала зайти под админом а потом зайти под пользователем то ошибку не выдает.
К сожалению файл уже вырос до 200кб.
Кажется я понял что проблема в двух кодах из основания книги. 1 код для скрытия листов 2 код ля календаря
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Private Sub Workbook_Open()
If ActiveSheet.Name = «Лист5» Then Application.OnKey «^v», «»: Application.OnKey «^V», «» Application.OnKey «^x», «»: Application.OnKey «^X», «» End If
2-ой код (пытался что-то зарепортить чтобы хоть как-то подружить эти два кода.
200?’200px’:»+(this.scrollHeight+5)+’px’);»> ‘Option Explicit ‘Private WithEvents Appl As Application ‘ объявляем объект Application для того, чтобы можно было отлавливать события других книг
‘ Sub Reload_Appl(): Set Appl = Application: End Sub ‘ «патч» (у меня почему-то иногда теряется определение Appl)
SLAVICK, Здравствуй. Что-то я поломал. И не знаю куда искать где смотреть. При выборе пользователя и ввода пароля 444 Макрос выдает ошибку дебаг или ЕНД предлагает поискать проблему в этой строке.
Что привело к поломке не знаю. Добавлял страницы удалял ненужные. Добавлял в список отображаемых еще страниц. Но уже в сломанном файле делал многое чтобы понять в чем причина и список страниц корректировал убавлял его до одной. Пока ничего не помогло.
Ошибка: Нельзя установить свойство Visible класса Workshieet
Причем если сначала зайти под админом а потом зайти под пользователем то ошибку не выдает.
К сожалению файл уже вырос до 200кб.
Кажется я понял что проблема в двух кодах из основания книги. 1 код для скрытия листов 2 код ля календаря
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Private Sub Workbook_Open()
If ActiveSheet.Name = «Лист5» Then Application.OnKey «^v», «»: Application.OnKey «^V», «» Application.OnKey «^x», «»: Application.OnKey «^X», «» End If
2-ой код (пытался что-то зарепортить чтобы хоть как-то подружить эти два кода.
200?’200px’:»+(this.scrollHeight+5)+’px’);»> ‘Option Explicit ‘Private WithEvents Appl As Application ‘ объявляем объект Application для того, чтобы можно было отлавливать события других книг
‘ Sub Reload_Appl(): Set Appl = Application: End Sub ‘ «патч» (у меня почему-то иногда теряется определение Appl)
Сообщение SLAVICK, Здравствуй. Что-то я поломал. И не знаю куда искать где смотреть. При выборе пользователя и ввода пароля 444 Макрос выдает ошибку дебаг или ЕНД предлагает поискать проблему в этой строке.
Что привело к поломке не знаю. Добавлял страницы удалял ненужные. Добавлял в список отображаемых еще страниц. Но уже в сломанном файле делал многое чтобы понять в чем причина и список страниц корректировал убавлял его до одной. Пока ничего не помогло.
Ошибка: Нельзя установить свойство Visible класса Workshieet
Причем если сначала зайти под админом а потом зайти под пользователем то ошибку не выдает.
К сожалению файл уже вырос до 200кб.
Кажется я понял что проблема в двух кодах из основания книги. 1 код для скрытия листов 2 код ля календаря
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Private Sub Workbook_Open()
If ActiveSheet.Name = «Лист5» Then Application.OnKey «^v», «»: Application.OnKey «^V», «» Application.OnKey «^x», «»: Application.OnKey «^X», «» End If
2-ой код (пытался что-то зарепортить чтобы хоть как-то подружить эти два кода.
200?’200px’:»+(this.scrollHeight+5)+’px’);»> ‘Option Explicit ‘Private WithEvents Appl As Application ‘ объявляем объект Application для того, чтобы можно было отлавливать события других книг
‘ Sub Reload_Appl(): Set Appl = Application: End Sub ‘ «патч» (у меня почему-то иногда теряется определение Appl)