Перейти до основного матеріалу
Note: The other languages of the website are Google-translated. Back to English

Як заблокувати або заморозити вкладку робочого аркуша в Excel?

Припустимо, у вас є робоча книга, яка містить кілька аркушів, є робочий аркуш із назвою Основний аркуш як перша вкладка в книзі. А тепер ви хочете спробувати заблокувати або заморозити цю вкладку аркуша, щоб зробити її завжди видимою навіть під час прокрутки ряду робочих аркушів. Насправді прямого способу заморозити вкладку не існує, але для вирішення цієї проблеми ви можете використовувати обхідний шлях.

Заблокуйте або заморожте певну вкладку робочого аркуша з кодом VBA


стрілка синя права міхур Заблокуйте або заморожте певну вкладку робочого аркуша з кодом VBA

В Excel ми можемо застосувати наступний код VBA для створення конкретного робочого аркуша завжди перед поточною вкладкою робочого аркуша, на якому ви натиснули, так що ви завжди зможете побачити цей аркуш, коли прокручуєте будь-які інші вкладки аркуша. Будь ласка, виконайте наступне:

1. Утримуйте клавішу ALT + F11 і відкриває Вікно Microsoft Visual Basic для програм.

2. Тоді виберіть ThisWorkbook зліва Провідник проектів , двічі клацніть на ньому, щоб відкрити Модулі, а потім скопіюйте та вставте наступний код VBA у порожній модуль:

Код VBA: заморозити або заблокувати певну вкладку робочого аркуша

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Update by Extendoffice
Application.EnableEvents = False
Application.ScreenUpdating = False
If Application.ActiveSheet.Index <> Application.Sheets("Main-sheet").Index Then
    Application.Sheets("Main-sheet").Move Before:=Application.Sheets(Application.ActiveSheet.Index)
    Application.Sheets("Main-sheet").Activate
    Sh.Activate
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

doc-freeze-sheet-tab-1

3. А потім збережіть і закрийте цей код, тепер, коли ви натискаєте будь-яку вкладку робочого аркуша, цей конкретний аркуш завжди буде знаходитися в передній частині вкладки, на якій ви натискаєте аркуш.

doc-freeze-sheet-tab-2
-1
doc-freeze-sheet-tab-3

примітки: У наведеному вище коді головний аркуш - це назва аркуша, який ви хочете заморозити, ви можете змінити його відповідно до своїх потреб.


Статті по темі:

Як заморозити панелі в Excel 2010?

Як застосувати панелі заморожування / розморожування до кількох аркушів одночасно?


Найкращі інструменти для підвищення продуктивності офісу

Kutools for Excel Вирішує більшість ваших проблем і підвищує вашу продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Office Tab Надає інтерфейс із вкладками в Office і значно полегшує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (10)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Коли я використовую VBA, я не можу скопіювати дані з основного аркуша на інший аркуш. Будь ласка, допоможіть мені виправити цю помилку
Цей коментар був мінімізований модератором на сайті
хахаха. такий справжній! ви знайшли виправлення для цього?
Цей коментар був мінімізований модератором на сайті
Не вдалося змусити ваш код працювати, але цей зробив :) Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim sc As Long ' кількість аркушів Dim NewPos As Long ' індекс вибраного аркуша Application.EnableEvents = False Application.ScreenUpdating = False Якщо ActiveSheet.Index 1, то sc = Sheets.Count NewPos = ActiveSheet.Index Для i = 2 До NewPos - 1 Sheets(2).Перемістити після:=Аркуші(sc) Далі i Листи(1).Активувати листи(2). Активувати End If Application.ScreenUpdating = True Application.EnableEvents = True End Sub
Цей коментар був мінімізований модератором на сайті
Чи можна створити один із кількома аргументами? Наприклад, замість того, щоб просто переміщувати один основний аркуш на передню частину місця, де ви працюєте, чи можна перемістити три вкладки перед тим, над чим ви працюєте?
Цей коментар був мінімізований модератором на сайті
Так, можливо, вам просто потрібно додати більше аргументів до речення if за допомогою "І", як це IF Application.ActiveSheet.Index Application.Sheets("Main-sheet").Index AND Application.ActiveSheet.Index Application. Sheets("Other-Main-sheet").Index і так далі... Потім Application.Sheets("Main-sheet").Move Before:=Application.Sheets(Application.Sheets("Other-Main-sheet") .Index) Application.Sheets("Main-sheet").Activate Application.Sheets("Other-Main-sheet").Move Before:=Application.Sheets(Application.ActiveSheet.Index) Application.Sheets("Other-Main -sheet").Activate Sh.Activate Це розмістить основний аркуш, а потім інший основний аркуш перед вашим активним аркушем.
Цей коментар був мінімізований модератором на сайті
чи цей vba мій аркуш Excel не заморожує, будь ласка, надайте мені рішення
Цей коментар був мінімізований модератором на сайті
Цей код працював добре. Єдина проблема... якщо ми закриємо файл і відкриємо його знову, він згасне.
Цей коментар був мінімізований модератором на сайті
[quote]Цей код працював добре. Єдина проблема... якщо ми закриємо файл і відкриємо його знову, він згасне.Автор: Sangs[/quote] Спробуйте зберегти документ як робочу книгу з підтримкою макросів. Я думаю, що це має добре працювати.
Цей коментар був мінімізований модератором на сайті
Як зазначив Туен 2 роки тому, ви не можете копіювати дані між аркушами, поки цей код активний. Крім того, код зайво складний. Аркуш, який ви активуєте, передається процедурі як параметр «Sh». Це робить часті виклики «ActiveSheet» непотрібними і може спричинити проблеми для тих, хто намагається змінити код, але не має особливого досвіду.

Ось мої версії, які виправляють ці проблеми і навіть показують, як додати 2-й «Основний» аркуш (подібно до того, що опублікував Дзінгай):
-------------------------------------------------- ---------------

«Ці 2 рядки не потрібні, якщо ви використовуєте кодові назви аркушів, що я рекомендую.
Встановіть shtMain1 = Worksheets("Main-Sheet-1")
Встановіть shtMain2 = Worksheets("Main-Sheet-2")

Якщо Application.CutCopyMode = False, то
Якщо Sh.Index <> shtMain1.Index і Sh.Index <> shtMain2.Index, тоді
shtMain1.Move before:=Sh
shtMain2.Move before:=Sh
Ш.Активувати
End If
End If
Цей коментар був мінімізований модератором на сайті
chăng đc gi cả
There are no comments posted here yet