Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
Tanyushka
0 / 0 / 0
Регистрация: 27.09.2009
Сообщений: 6
#1

Операции с листами в Excel - VBA

27.09.2009, 13:16. Просмотров 3096. Ответов 8
Метки нет (Все метки)

Нужно добавить в рабочую книгу 10 листов. Переименовать их. Скрыть все листы, кроме листа с номером N (N ввести с помощью inputbox), а затем удалить их.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2009, 13:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Операции с листами в Excel (VBA):

Работа с листами в Excel
В листе есть 3 колонки. Допустим R3C1,R3C2,R3C3 Можно ли удалить их...

работа с листами в excel
Необходимо написать программу, которая объединяет несколько листов в excel (они...

Работа с листами в Excel #2
Допустим у меня есть значение и мне нужно проверить есть ли оно в ячейке где...

Макрос в VBA для работы с рабочими листами в Excel
Макрос средствами VBA for Excel В форме ввести шаблон и с помощью операции...

Excel: как выделить все листы, находящиеся между заданными листами?
эта команда - Sheets(Array("zayavki", "list3")).Select - выделяет только...

работа с защищенными листами
Добрый день. Пытаюсь сделать защиту на листы чтоб данные могли вводиться...

8
Tanyushka
0 / 0 / 0
Регистрация: 27.09.2009
Сообщений: 6
29.09.2009, 22:27  [ТС] #2
Помогите пожалуйста, как скрыть все листы кроме N????
Начало вышло:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Dim w As Worksheet
For i = 1 To 10
Workbooks(1).Worksheets.Add
Next i
x = 1
For Each w In ActiveWorkbook.Worksheets
   w.Name = "№" & x
   x = x + 1
Next w
N = InputBox("№")
Что с ним дальше делать??????
0
Toxa33rus
3814 / 878 / 120
Регистрация: 16.04.2009
Сообщений: 1,766
29.09.2009, 23:13 #3
Visual Basic
1
2
3
4
5
For i=0 to 10
  If i<>N Then
    Workbooks(1).Worksheets("№" & i).Visible = 0
  End if
Next i
0
Tanyushka
0 / 0 / 0
Регистрация: 27.09.2009
Сообщений: 6
29.09.2009, 23:26  [ТС] #4
Выдает ошибку subscript out of range
0
Toxa33rus
3814 / 878 / 120
Регистрация: 16.04.2009
Сообщений: 1,766
29.09.2009, 23:41 #5
Ой.
Visual Basic
1
2
3
4
5
For i=1 to 10
  If i<>N Then
    Workbooks(1).Worksheets("№" & i).Visible = 0
  End if
Next i
0
Tanyushka
0 / 0 / 0
Регистрация: 27.09.2009
Сообщений: 6
29.09.2009, 23:53  [ТС] #6
то же самое
0
Toxa33rus
3814 / 878 / 120
Регистрация: 16.04.2009
Сообщений: 1,766
30.09.2009, 13:40 #7
У меня работает. Только после добавления 10 листов их становится 11 или 13 (смотря сколько было до добавления), а после переименования все листы получают имена (а не добавленные 10). Да еще из-за использования For Each имена присваиваются не по порядку. Никаких ошибок не выскакивает.
Вот код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim w As Worksheet
For i = 1 To 10
  Workbooks(1).Worksheets.Add
Next i
x = 1
For Each w In ActiveWorkbook.Worksheets
   w.Name = "№" & x
   x = x + 1
Next w
N = InputBox("№")
 
For i = 1 To 10
  If Workbooks(1).Worksheets(i).Name <> "№" & N Then 'эту строку изменил
    Workbooks(1).Worksheets("№" & i).Visible = 0
  End If
Next i
1
Tanyushka
0 / 0 / 0
Регистрация: 27.09.2009
Сообщений: 6
01.10.2009, 16:57  [ТС] #8
А если все же переименовывать только добавленные 10, то с помощью чего это лучше будет сделать?
0
Toxa33rus
3814 / 878 / 120
Регистрация: 16.04.2009
Сообщений: 1,766
01.10.2009, 22:12 #9
Visual Basic
1
2
3
For x=1 to ActiveWorkbook.Worksheets.Count
  ActiveWorkbook.Worksheets(x).Name = "№" & x
Next x
Добавлено через 2 минуты
ой не на тот вопрос ответил
Но по крайней мере так будет красивее
0
01.10.2009, 22:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2009, 22:12
Привет! Вот еще темы с решениями:

Новичок. Помогите разобраться с листами Exсel
Доброго времени суток комрады! Никогда не работал с VBA, в основном прогал на...

Работа с листами, а также копирование примечаний
Здравствуйте, замучился уже, толи тип у переменной неправильно выбрал толи еще...

Макрос с данными из нескольких таблиц с несколькими листами.
Здравствуйте, может быть вы подскажете мне. У меня такая проблема:...

Вывод названия листа - при перемещении между листами документа эксель
Здравствуйте, уважаемые программисты. Помогите разобраться. У меня есть файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru