Спасибо, за ответы. В таком случае, буду читать, как прицепить макрос к какому-нибудь событию. А пока что конкретных вопросов нет... (((
» Excel VBA (часть 2)
Mushroomer
Мне кажется для Access слишком много данных. Как я поняла имена директорий и файлов стандартизованы. Можно написать одну программу, которая по диапазону дат выберет необходимую директорию(или несколько), уже там необходимый файл(или файлы) а там нужные листы, потом строки и извлечет нужную информацию. Но это только если имена директорий и файлов однозначно привязаны к дате. И это будет работать, сколько к ней не добавляй.
Мне кажется для Access слишком много данных. Как я поняла имена директорий и файлов стандартизованы. Можно написать одну программу, которая по диапазону дат выберет необходимую директорию(или несколько), уже там необходимый файл(или файлы) а там нужные листы, потом строки и извлечет нужную информацию. Но это только если имена директорий и файлов однозначно привязаны к дате. И это будет работать, сколько к ней не добавляй.
Что делает этот код может кто нить объяснить хоть приблезительно. Макрос рабочий на 110%, с 5 % погрешностью. Мне надо правильно расставить данные,судя по коду их надо в Лист1 или Лист2. Где должны быть входные,а где выходные я не понел и вот в этом вопросе нужен ваш совет нужен ваш профессиональный совет. Заранее благодарен.
Код: Sub Макрос1()
i = 3
Range("H3").Select
STAR = 1
NOV = 1
While i <= 65000
While (STAR = NOV)
NOV = Cells(i, "H").Value
If Len(NOV) = 0 Then
NOV = STAR
End If
Cells(i, "H").Value = STAR
i = i + 1
Wend
STAR = NOV
Wend
Range("H6").Select
End Sub
Код: Sub Макрос1()
i = 3
Range("H3").Select
STAR = 1
NOV = 1
While i <= 65000
While (STAR = NOV)
NOV = Cells(i, "H").Value
If Len(NOV) = 0 Then
NOV = STAR
End If
Cells(i, "H").Value = STAR
i = i + 1
Wend
STAR = NOV
Wend
Range("H6").Select
End Sub
qwerty550
Цитата:
Цитата:
Жжёшь
Цитата:
Посмотри здесь список кодов
Цитата:
Ну первый макрос работает на текущем листе, во втором макросе считается, что на первом листе нужные логины, в во второй добавляется статистика (какой-то лог?). Проверяется, есть ли запись, если есть - то апдейт её, а иначе добавляется новая запись с данными.
Цитата:
приблезительно
Цитата:
запитая
Жжёшь
Цитата:
Как запостить в виде таблицы не нашел
Посмотри здесь список кодов
Цитата:
Что делает этот код может кто нить объяснить хоть приблезительно.
Ну первый макрос работает на текущем листе, во втором макросе считается, что на первом листе нужные логины, в во второй добавляется статистика (какой-то лог?). Проверяется, есть ли запись, если есть - то апдейт её, а иначе добавляется новая запись с данными.
Подскажите пожалуйста, как программно закрыть открытое окно Excel при попытке закрыть активную форму этого приложения Excel? (Office 2003)
febreze2009
Попробуй
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Workbooks.Close
End Sub
Попробуй
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Workbooks.Close
End Sub
Спасибо. Попробую
Подскажите пожалуйста, возможно ли каким-либо образом сделать сетку в элементе управления listbox? Если нет, то какой существует элемент управления, который бы представлял данные в виде таблицы?
5tas
MSFlexGrid, DataGrid (из VB), есть и другие
MSFlexGrid, DataGrid (из VB), есть и другие
добрый день вот такой вопрос есть таблица с большим количеством цифр
клонка 1 колонка 2 колонка 3 колонка 4 колонка 5
8512 9030 853 3524 855799
9829 830 901 71 85799
95829 9050 968 511 851708
90829 90830 968 9830 1708
90846 99830 968 71 81708
так вот надо наити одинакоые цифры которые присутвують в каждой клонке. как это сделать не могу додумать.. может дадите направления или даже макрос какой нибудь как ее решить.
http://img228.imageshack.us/img228/5695/exel.jpg
заранее спасибо.. пока пойду думать как это сделать самому
клонка 1 колонка 2 колонка 3 колонка 4 колонка 5
8512 9030 853 3524 855799
9829 830 901 71 85799
95829 9050 968 511 851708
90829 90830 968 9830 1708
90846 99830 968 71 81708
так вот надо наити одинакоые цифры которые присутвують в каждой клонке. как это сделать не могу додумать.. может дадите направления или даже макрос какой нибудь как ее решить.
http://img228.imageshack.us/img228/5695/exel.jpg
заранее спасибо.. пока пойду думать как это сделать самому
TGR3
Цитата:
Ну, нашли... И куда их?
Цитата:
надо наити одинакоые цифры которые присутвують в каждой клонке
Ну, нашли... И куда их?
списоком можно без разницы просто нужны эти данные.. вот нашел в инете пока искал
=ЕСЛИ($B10="";"";СЧЁТЕСЛИ($B$10:$B10;$B10)=1)
он будет показывать были ли повторяющие цифры или нет... тока там не разными столбами надо а одним столбиком... так что вот так как то...
может что попроще есть.
=ЕСЛИ($B10="";"";СЧЁТЕСЛИ($B$10:$B10;$B10)=1)
он будет показывать были ли повторяющие цифры или нет... тока там не разными столбами надо а одним столбиком... так что вот так как то...
может что попроще есть.
здравствуйте, простите если об этом уже спрашивали ранее. Я не нашел((. Подскажите плз, как сделать так, чтоб при запуске файла, допустим, temp.xls автоматически выполнялся макрос. Чтоб не приходилось каждый раз запускать макрос из Сервиса - Макрос - Макросы (или сочитанием клавиш). Чтоб все выполнялось без вмешательства пользователя. И что нужно дописать в конце макроса, чтоб после его выполнения эксель закрывался? Спасибо.
Kirov23
Цитата:
откройте temp.xls
перейдите в редактор VBA (Alt-F11)
двойной щелчок по ЭтаКнига в составе вашего temp.xls (это слева, в дереве проектов)
вставляете код:
Код:
Private Sub Workbook_Open()
MsgBox "Запустился макрос!"
End Sub
Цитата:
чтоб при запуске файла, допустим, temp.xls автоматически выполнялся макрос
откройте temp.xls
перейдите в редактор VBA (Alt-F11)
двойной щелчок по ЭтаКнига в составе вашего temp.xls (это слева, в дереве проектов)
вставляете код:
Код:
Private Sub Workbook_Open()
MsgBox "Запустился макрос!"
End Sub
SERGE_BLIZNUK
Цитата:
как я могу их путать ? мне надо наити одинаковые цифры в каждой из колонок что тут сложно понять.. два ответа на мои вопрос и там переспрашивание просто .
Цитата:
А Вы не путаете цифры и числа ?
как я могу их путать ? мне надо наити одинаковые цифры в каждой из колонок что тут сложно понять.. два ответа на мои вопрос и там переспрашивание просто .
Цитата:
как я могу их путать ? мне надо наити одинаковые цифры в каждой из колонок что тут сложно понять..
афигеть.. а я уверен, что путаете..
определение, что такое цифра из википедии
вот, в вашем примере (берём первую строку):
8512 9030 853 3524 855799
в первой числе и третьем одинаковая ЦИФРА 5
в втором числе и третьем одинаковая ЦИФРА 3
в третьем числе и четвёртом числе одинаковые ЦИФРЫ 5 и 3
в четвёртом и пятом числе одинаковая ЦИФРЫ 5
Вы такой ответ хотите получить?
А в каком столбце Вам такое нужно увидеть?!
лучше бы вы приложили табличку с двуми листами. на первом листе исходные данные.
на втором - ЧТО ИМЕННО ВЫ ХОТИТЕ ПОЛУЧИТЬ...
удачи.
Добавлено:
или, неужели действительно не путаете?! o_O
тогда для вашего же примера:
Код:
колонка1 колонка2 колонка3 колонка4 колонка5
8512 9030 853 3524 855799
9829 830 901 71 85799
95829 9050 968 511 851708
90829 90830 968 9830 1708
90846 99830 968 71 81708
я прошу прощения... с утра что то не понял вас... и пост свои отредоктатировал , но почему то не внеслись изменния... так вот да мне надо наити числа, а не цифры ...
TGR3 - уже лучше.
ну ещё раз.... Вам нужно привести пример и результат, что должно получится.
в приведённом Вами примере нет НИ ОДНОГО ОДИНАКОВОГО числа, которое присутствует во всех колонках...
ну ещё раз.... Вам нужно привести пример и результат, что должно получится.
в приведённом Вами примере нет НИ ОДНОГО ОДИНАКОВОГО числа, которое присутствует во всех колонках...
SERGE_BLIZNUK
как трудно с объяснениями однако так глядишь через пару страниц поймем чего же требуется )
как трудно с объяснениями однако так глядишь через пару страниц поймем чего же требуется )
visual73 точно!
если честно, я не стал писать об этом, но я уже начал уставать пытаться выяснить у автора вопроса, что же он хочет получить в конце то концов... прям партизан какой-то...
и я ещё не удивлюсь, если эта задача решается формулами, без всякого VBA...
если честно, я не стал писать об этом, но я уже начал уставать пытаться выяснить у автора вопроса, что же он хочет получить в конце то концов... прям партизан какой-то...
и я ещё не удивлюсь, если эта задача решается формулами, без всякого VBA...
visual73
Цитата:
А Вы пробовали использовать MSFlexGrid в Excel? Дело в том, что при использовании этого элемента управления размер книги Excel, в уоторой он находится, увеличивается при каждом запуске формы. Размер моего файло дошёл аж до 341 МегаБайта! Кто-нибудь знает в чём причина?
Цитата:
MSFlexGrid, DataGrid (из VB), есть и другие
А Вы пробовали использовать MSFlexGrid в Excel? Дело в том, что при использовании этого элемента управления размер книги Excel, в уоторой он находится, увеличивается при каждом запуске формы. Размер моего файло дошёл аж до 341 МегаБайта! Кто-нибудь знает в чём причина?
5tas
Я использовал этот элемент (flexgrid) в Excel (XP,2003), и что-то не помню такого явления %)
Я использовал этот элемент (flexgrid) в Excel (XP,2003), и что-то не помню такого явления %)
visual73
Нашёл как это можно обойти:Ссылка
Нашёл как это можно обойти:Ссылка
SERGE_BLIZNUK
хорошо попытка номер 3 или 4 или вторая объяснить... есть числа в столбиках, по вертикали количество чисел везде разное ... надо наити число которое чаще минимум 6 раз находиться в каждой строке, максимум присутствует во всех строках.
http://img30.imageshack.us/img30/1116/333igp.png
так вот там все видно таблица маленкая моя же таблица большая там 40 столбов или больше и строк в некоторых столбах достигает 1000 , так вот тут по картинке правильные числа (а не цифры ) это 2 (5 строка, просто число два) которая встречаеться везде и 32 которая попадает под 6 совпадение в одной строке.
теперь понятно выразился или мне лучше ап стенку убиться?
хорошо попытка номер 3 или 4 или вторая объяснить... есть числа в столбиках, по вертикали количество чисел везде разное ... надо наити число которое чаще минимум 6 раз находиться в каждой строке, максимум присутствует во всех строках.
http://img30.imageshack.us/img30/1116/333igp.png
так вот там все видно таблица маленкая моя же таблица большая там 40 столбов или больше и строк в некоторых столбах достигает 1000 , так вот тут по картинке правильные числа (а не цифры ) это 2 (5 строка, просто число два) которая встречаеться везде и 32 которая попадает под 6 совпадение в одной строке.
теперь понятно выразился или мне лучше ап стенку убиться?
TGR3
я Вам честно скажу, понятие объяснять и растолковывать явно не Ваша сильная сторона!
вот макрос, который решает Вашу задачу:
[more]
Код:
Sub CountRepeats()
Dim MyuArray As Variant, IRow%, i&, k&, IndexMax&, CountMax&, CountCur&
For IRow = 2 To _
ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
MyuArray = Range(Cells(IRow, 1), Cells(IRow, 40))
IndexMax = -1
CountMax = -1
For i = LBound(MyuArray, 2) To UBound(MyuArray, 2)
CountCur = 0
For k = LBound(MyuArray, 2) To UBound(MyuArray, 2)
If (MyuArray(1, i) = MyuArray(1, k)) Then CountCur = CountCur + 1
Next k
If CountCur > CountMax Then
CountMax = CountCur
IndexMax = i
End If
Next i
Cells(IRow, 40 + 1).ClearContents
Cells(IRow, 40 + 2).ClearContents
If CountMax >= 6 Then
Cells(IRow, 40 + 1) = MyuArray(1, IndexMax)
Cells(IRow, 40 + 2) = CountMax
'MsgBox " Максимальное значение = " & MyuArray(1, IndexMax) _
& " встречается " & Str(CountMax) & " раз. "
End If
Next IRow
End Sub
я Вам честно скажу, понятие объяснять и растолковывать явно не Ваша сильная сторона!
вот макрос, который решает Вашу задачу:
[more]
Код:
Sub CountRepeats()
Dim MyuArray As Variant, IRow%, i&, k&, IndexMax&, CountMax&, CountCur&
For IRow = 2 To _
ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
MyuArray = Range(Cells(IRow, 1), Cells(IRow, 40))
IndexMax = -1
CountMax = -1
For i = LBound(MyuArray, 2) To UBound(MyuArray, 2)
CountCur = 0
For k = LBound(MyuArray, 2) To UBound(MyuArray, 2)
If (MyuArray(1, i) = MyuArray(1, k)) Then CountCur = CountCur + 1
Next k
If CountCur > CountMax Then
CountMax = CountCur
IndexMax = i
End If
Next i
Cells(IRow, 40 + 1).ClearContents
Cells(IRow, 40 + 2).ClearContents
If CountMax >= 6 Then
Cells(IRow, 40 + 1) = MyuArray(1, IndexMax)
Cells(IRow, 40 + 2) = CountMax
'MsgBox " Максимальное значение = " & MyuArray(1, IndexMax) _
& " встречается " & Str(CountMax) & " раз. "
End If
Next IRow
End Sub
SERGE_BLIZNUK
Благодарю, работает как надо.
Благодарю, работает как надо.
Всем привет!
Помогите освоить многомерные массивы с сортировкой и выборкой данных из них.
Чтобы было понятно начну с самого начала. Собственно задача:
Есть лист книги "Оформленные ВСЕГО" содержащий много столбцов и каждый день добавляющиеся строки.
Нужно выбрать из этого листа данные 4-х столбцов в массив и отсортировать по фамилиии и дате:
F - фамилия H - номер G - дата M - стоимость
Сбросить результат в соседний лист помесячно
http://rapidshare.com/files/263234237/data.rar.html или http://rapidshare.de/files/48022094/data.rar.html
Какой массив выбрать динамический или фиксированный? Один 4-х мерный или 4 одномерных?
Помогите освоить многомерные массивы с сортировкой и выборкой данных из них.
Чтобы было понятно начну с самого начала. Собственно задача:
Есть лист книги "Оформленные ВСЕГО" содержащий много столбцов и каждый день добавляющиеся строки.
Нужно выбрать из этого листа данные 4-х столбцов в массив и отсортировать по фамилиии и дате:
F - фамилия H - номер G - дата M - стоимость
Сбросить результат в соседний лист помесячно
http://rapidshare.com/files/263234237/data.rar.html или http://rapidshare.de/files/48022094/data.rar.html
Какой массив выбрать динамический или фиксированный? Один 4-х мерный или 4 одномерных?
filmax, ещё не смотрел Ваш пример. обязательно посмотрю.
Но, пока, наугад, могу сказать, что лучше копировать нужные данные и сортировать их прямо на листе функциями Excel - это будет кратко и эффективно. Иначе сортировку многомерного массива Вам прийдётся реализовывать самостоятельно. Это несложно, но достаточно муторно...
p.s. повторю — могу ошибаться. это то, что пришло в голову после того, как прочитал вопрос. файл ещё НЕ СМОТРЕЛ.
Но, пока, наугад, могу сказать, что лучше копировать нужные данные и сортировать их прямо на листе функциями Excel - это будет кратко и эффективно. Иначе сортировку многомерного массива Вам прийдётся реализовывать самостоятельно. Это несложно, но достаточно муторно...
p.s. повторю — могу ошибаться. это то, что пришло в голову после того, как прочитал вопрос. файл ещё НЕ СМОТРЕЛ.
То есть лучше скинуть данные из массива на лист, а потом отсортировать?
filmax, не знаю насчет того лучше или нет, но, имхо, проще!
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
Предыдущая тема: Написание своего HyperTerminal для считывания данных
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.