Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2010, 09:06   #1
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
Вопрос Формирование таблички

Здравствуйте, возникла необходимость обработать таблицу с данными и вынести нужные данные в табличку на другой лист. Подскажите пожалуйста как оформить код. Мои некоторые задумки во вложенном файле.
Вложения
Тип файла: rar Лист Microsoft Office Excel.rar (61.6 Кб, 14 просмотров)
1134 вне форума Ответить с цитированием
Старый 04.02.2010, 14:19   #2
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
По умолчанию

Подскажите пожалуйста как создать лист и присвоить ему имя:

Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Лист1").Select
Sheets("Лист1").Name = "Èñòîðè÷åñêèå ïîêàçàòåëè"

В этой записи получается ошибка если вновь добавленный лист имеет имя отличное от Лист1
1134 вне форума Ответить с цитированием
Старый 04.02.2010, 14:27   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    Worksheets.Add(After:=Sheets(Sheets.Count)).Name = "Название нового листа"
End Sub
Код выдаст ошибку, если лист с таким именем уже существует.

Тот же самый код можно записать так: (созданный лист автоматически становится активным)
Код:
Sub test()
    Worksheets.Add , Sheets(Sheets.Count)
    ActiveSheet.Name = "Название нового листа"
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 04.02.2010, 14:48   #4
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
По умолчанию Мерси!

Возможно, вам не составит много труда и не отнмет много времени ответить мне на вопрос: почему происходит ошибка в оранжевой строке?

Public Sub Tablica()

Dim cell As Range

Worksheets.Add , Sheets(Sheets.Count)
ActiveSheet.Name = "Èñòîðè÷åñêèå ïîêàçàòåëè"

c = Worksheets.Count

Worksheets("Èñòîðè÷åñêèå ïîêàçàòåëè").Cells(1, 1).Value = "WELL"
Worksheets("Èñòîðè÷åñêèå ïîêàçàòåëè").Cells(1, 2).Value = "DD.MM.YYYY"
Worksheets("Èñòîðè÷åñêèå ïîêàçàòåëè").Cells(1, 3).Value = "Qoil"
Worksheets("Èñòîðè÷åñêèå ïîêàçàòåëè").Cells(1, 4).Value = "Qwat"
Worksheets("Èñòîðè÷åñêèå ïîêàçàòåëè").Cells(1, 5).Value = "Qliq"
Worksheets("Èñòîðè÷åñêèå ïîêàçàòåëè").Cells(1, 6).Value = "WEFA"
Worksheets("Èñòîðè÷åñêèå ïîêàçàòåëè").Cells(1, 7).Value = "BHP"

For a = 1 To c - 1

For List = 1 To c - 1

For StrokiLista = 1 To 200

Select Case Cells(StrokiLista, 1).Value
Case "ßíâàðü"
sutki = 36
Case "Ôåâðàëü"
sutki = 33
Case "Ìàðò"
sutki = 36
Case "Àïðåëü"
sutki = 35
Case "Ìàé"
sutki = 36
Case "Èþíü"
sutki = 35
Case "Èþëü"
sutki = 36
Case "Àâãóñò"
sutki = 36
Case "Ñåíòÿáðü"
sutki = 35
Case "Îêòÿáðü"
sutki = 36
Case "Íîÿáðü"
sutki = 35
Case "Äåêàáðü"
sytki = 36
End Select

If Worksheets(List).cell(StrokiLista, 4) = "Qæ,ì3/ñóò" Then

Worksheets("Èñòîðè÷åñêèå ïîêàçàòåëè").Cells(a, 5).FormulaR1C1 = _
"=AVERAGEIF(Worksheet(List)!Cells(S trokiLista, 6), Cells(StrokiLista, sutki),""<>0"")"

End If

Next StrokiLista

Next List

Next a

End Sub
1134 вне форума Ответить с цитированием
Старый 04.02.2010, 15:14   #5
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
По умолчанию

Упсссс, ошибка найдена))))
1134 вне форума Ответить с цитированием
Старый 12.02.2010, 11:47   #6
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
По умолчанию Добрый день!

Подскажите пожалуйста как правильо записать:


If Cells(stroki, J) <> 0 And Cells(stroki + H, J)<>0 And Cells(stroki+H,J)<> (Текстовое значение, текст с цифрами) Then lastFiiledValue = Cells(stroki, J)
1134 вне форума Ответить с цитированием
Старый 12.02.2010, 12:52   #7
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

На мой взглад Текстовое значение, текст с цифрами надо просто заключить в ковычки "Текстовое значение, текст с цифрами"

Помню делал Вам часть кода и допустил ошибку в lastFiiledValue. Правильно lastFilledValue
Maxx вне форума Ответить с цитированием
Старый 12.02.2010, 12:57   #8
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
По умолчанию

Я имел ввиду "текстовое значение, текст с цифрами" не как фразу. Подразумевается, если макрос обнаружит в данной ячейке любой текст или любую цифру с буквами, условие не выполнится!
1134 вне форума Ответить с цитированием
Старый 12.02.2010, 13:04   #9
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Есть функция IsNumeric: If Not IsNumeric(Cells(1, 1)) Then MsgBox "там не число"

Код:
If Cells(stroki, J) <> 0 And Cells(stroki + H, J)<>0 And Not IsNumeric(Cells(stroki+H,J)) Then lastFiiledValue = Cells(stroki, J)
Maxx вне форума Ответить с цитированием
Старый 12.02.2010, 13:14   #10
1134
Пользователь
 
Аватар для 1134
 
Регистрация: 20.01.2010
Сообщений: 53
Хорошо

Maxx, спасибо!
1134 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическую сортировка на стороне клиента по каждой из колонке таблички с помщью javascript ssdm JavaScript, Ajax 1 30.11.2009 10:45
Access создание запроса и таблички Evgen_31 Microsoft Office Access 1 29.06.2009 16:49
Две таблички и два Grid antoni БД в Delphi 17 29.04.2009 13:28
Формирование кадра IzhAtomic Помощь студентам 0 26.04.2009 18:44
раскидать таблички Excel на страницу в Word TayfooN Microsoft Office Excel 3 28.03.2009 16:54