Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Условное форматирование в макросе
 
Добрый день!
Я настроил условное форматирование на некоторые ячейки в книге. При этом, если выполняется условие форматирования, соответствующая ячейка окрашивается заданным цветом. Однако когда я пытаюсь получить индекс цвета такой ячейки через макрос (свойство .Range("<адрес ячейки>" ;) .Interior.ColorIndex), получаю значение "-4142", что соответствует ячейке без заливки.

Подскажите, пожалуйста, каким образом можно получить информацию по заливке ячейки, выполненной в рамках условного форматирования? Основная цель: подсчитать количество "закрашенных" через форматирование ячеек. Может быть, существует возможность сделать это с помощью каких-то стандартных функций Excel без привлечения VBA?

Заранее огромное спасибо за помощь!
Работа с массивами и CopyMemory
 
Доброго времени суток!  
 
Часто при работе с массивами приходится копировать данные одного массива в другой. При этом, если объем данных достаточно большой, простой "перебор" элементов массива представляется малоэффективным инструментом. Для увеличения быстродействия программы в этом случае рекомендуется использование функции CopyMemory (например, здесь: http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/WindowsAPI/CopyMemory/171.mspx). Однако из представленного в Листинге4 примера неясно все же, каким образом, например, решить вот такую задачу. Имеется двумерный массив A, состоящий из 4 строк и 4 столбцов. Необходимо скопировать его содержимое в массив B, состоящий из 5 строк и 5 столбцов. Оставшиеся "вакантными" пятые строка и столбец в массиве B будут затем инициированы далее программно.  
 
Возможно ли реализовать это с помощью CopyMemory и как это сделать? Может быть, кто-нибудь сможет порекомендовать статьи на эту тему?  
 
Заранее признателен за комментарии!
Построение диаграммы
 
Добрый день!  
 
Помогите, пожалуйста, справиться со ступором :) : мне необходимо построить простую диаграммку, схема которой представлена во вложении, но я никак не могу сообразить, каким образом это можно сделать. Нужна стандартная диаграмма типа "График".  
 
Заранее большое спасибо за помощь!
Изменить ширину выпадающего списка
 
Добрый день!  
 
Помогите, пожалуйста, изменить ширину выпадающего из ячейки списка, настроенного с помощью команды меню Данные -> ПРоверка -> Тип данных: Список (см. вложенный файл). Вначале ширина списка соответствовала предлагаемым на выбор значениям, однако в какой-то момент она значительно увеличилась ...    
 
Подскажите, пожалуйста, как это исправить?.. Заранее большое спасибо!
Фоновое изображение листа
 
Добрый день!  
Подскажите, пожалуйста, возможно ли установить фоновое изображение для листа Excel и как это сделать?  
Аналогичный пример, реализованный в Word, см. во вложенном файле.  
Заранее большое спасибо за помощь!  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
Программнпая настройка панели инструментов
 
Добрый день!  
 
При запуске разрабатываемого файла создается пользовательская панель инструментов (см. вложенный файл), которая формируется в Excel в "плавающем" виде.  
 
Возможно ли программно поместить созданную панель на тот же уровень, что и другие уже вынесенные панели инструментов (а вернее, разместить ее под ними)?  
 
Панель создается следующей процедурой:  
Private Sub AddCommandBar()  
 
Dim C As CommandBar  
Dim CB As CommandBarButton  
 
On Error Resume Next  
Set C = Application.CommandBars("Сравнение списков")  
If Not C Is Nothing Then  
  Application.CommandBars("Сравнение списков").Delete  
End If  
 
Set C = Application.CommandBars.Add("Сравнение списков", msoBarFloating, False, True)  
C.Enabled = True  
C.Visible = True  
 
Set CB = C.Controls.Add(msoControlButton, 1)  
CB.Tag = ""  
CB.Style = msoButtonCaption  
CB.Caption = "     Выполнить сравнение     "  
CB.OnAction = "modComparison.RunComparison"  
 
End Sub  
 
Заранее большое спасибо за помощь!
Особая сводная таблица
 
Добрый день!  
 
Помогите, пожалуйста, корректно построить сводную таблицу (если такое представление данных через СТ вообще возможно:) ).  
 
Во вложении пример исходный данных и желаемый вид СТ. Хотелось бы получить инструкции, каким образом можно построить такую таблицу.  
 
Заранее большое спасибо за помощь!
Определить ссылки на объект-родитель
 
Добрый день!  
 
Подскажите, пожалуйста, возможно ли получить информацию о "родителях" объекта Range, возвращаемого методом Application.InputBox?  
 
Т.е. можно ли каким-либо образом после успешного выполнения команды:  
     Set Rg=Application.InputBox("Выберете требуемый диапазон", Type:=8)  
определить, на каком листе находится выбранный диапазон (объект-родитель Worksheet) и в какой книге (объект-родитель Workbook)?  
 
Заранее большое спасибо за помощь!
Автозаполнение ячеек в таблице Excel
 
Добрый день!  
 
Подскажите, пожалуйста, что за опция в настройках книги приводит к такому результату и как ее отключить.  
 
На сетевом ресурсе располагается книга Excel, которую последовательно редактируют разные сотрудники (каждый свою область книги). При этом иногда возникает ситуация, при которой введенное в произвольную ячейку значение АВТОМАТИЧЕСКИ распространяется и на другие ячейки (причем на самые разные, без какой-либо логической связи). Соответственно, из-за этого теряются данные!  
 
Помогите, пожалуйста, разобраться с данной проблемой!  
Большое спасибо за помощь!
Условие "не содержит" в Расширенном фильтре
 
Добрый день!  
 
Помогите, пожалуйста, задать фильтрацию расширенным фильтром по критерию "не содержит".  
Если пробую задавать условие в виде "<>*мама*" (т.е. фильтрация всех строк, не содержащих слово "мама"), то фильтрация не срабатывает ...  
 
Заранее большое спасибо!
Работа с объектом ADODB.Stream
 
Добрый день!  
 
Подскажите, пожалуйста, в чем может быть причина следующей проблемки.  
 
Моя программа работает с достаточно тяжеловесными файлами html (средний "вес" файла 30-40 МБ, но бывают и больше), которые созданы в кодировке Utf-8. Для того чтобы получить доступ к данным в VBA, мне необходимо вначале провести преобразование строк html-кода в ASCII-формат. С этой целью я использую следующий тестовый код:  
 
Private Sub Utf8ToWin()  
Dim oStream As ADODB.Stream  
Dim Str As String  
Dim Fsys As Scripting.FileSystemObject  
Dim txtForWriting As TextStream  
 
Set Fsys = New Scripting.FileSystemObject  
Fsys.CreateTextFile "<FilePath>\WIN.html", True  
Set txtForWriting = Fsys.OpenTextFile("<FilePath>\WIN.html", ForWriting)  
 
Set oStream = New ADODB.Stream  
oStream.Type = 2  
oStream.Charset = "Utf-8"  
oStream.Open  
oStream.LoadFromFile "<FilePath>\UTF8.html"  
Do Until oStream.EOS  
 Str = oStream.ReadText  
 txtForWriting.WriteLine Str  
Loop  
oStream.Close  
txtForWriting.Close  
MsgBox "Готово!"  
End Sub  
 
Код работает безупречно для сравнительно небольших объемов текста. Однако если программа начинает работать с тяжеловесными файлами, то процесс обработки "застревает" на процедуре Str = oStream.ReadText. Выполнение кода "зависает" уже на первой строке html-кода, приходится закрывать Excel через Диспетчер задач Windows.  
 
Подскажите, пожалуйста, что в этом коде не так?.. Подозреваю, что я некорректно обращаюсь к объекту ADODB...  
 
Заранее большое спасибо за помощь!
Работа с изображениями в VBA
 
Добрый день!  
 
Подскажите, пожалуйста, как справиться со следующей задачей.  
В книге Excel есть два листа, один из которых (1) является шаблонным. Шаблон представляет собой полностью отформатированные ячейки листа (1), адаптированного к печати, а также изображения логотипов компаний, которые располагаются в левом и в правом верхних углах страницы. После нажатия на кнопку происходит копирование шаблона в другой лист (2) одной страницей под другой, после чего определенные поля программно заполняются. Проблема в том, что при копировании данных из (1) в (2) происходит лишь копирование содержимого ячеек и их форматирования, однако сопутствующие изображения не копируются. Алгоритм копирования: задаю диапазон копирования командой Set R=<Range_To_Copy>, затем метод R.Copy, затем в цикле вызывается метод WSprint.Cells(I, 1).PasteSpecial. Пробовал записывать макрос и адаптировать записанный код VBA, однако проблема не разрешилась. Что интересно – записанный макрос по сути делает то же: выделяет ячейки, копирует и вставляет. Если проводить эту же операцию вручную(т.е. просто выделить ячейки и вставить их содержимое в другой лист), то вставка осуществляется вместе с изображениями …  
 
Заранее огромное спасибо за помощь!
Объекты HTML в книгах Excel
 
Добрый день!  
 
Помогите, пожалуйста, разобраться в причине такой проблемки. Коллеге направили файл Excel, представляющий собой некий стандартный шаблон. Четыре параметра шаблона заполняются посредством объекта "выпадающий список". В режиме Конструктора этот объект отображается как объект HTMLSelect. В связи с чем возникло подозрение, что рабочая книга Excel представляет собой пересохраненную web-страницу. Проблема заключается в том, что у коллеги на компьютере эти списки в Excel не активны, в то время как на других рабочих местах у других коллег этот объект полностью функционирует. При открытии книги макросы включены во всех случаях. К сожалению, заменить этот объект на стандартный элемент управления ComboBox нельзя, поскольку этот шаблон не для внутреннего пользования и передается далее в другие подразделения.  
 
Что самое интересное - ранее этот шаблон у него работал, но произошло нечто, и он перестал функционировать ... Уже перепроверили все известные мне настройки Excel, но ничего неординарного не выявили. Может быть кто-то уже сталкивался с подобным?.. Поисковики никаких подсказок не выдали.  
 
Заранее большое спасибо!
PopUp Menu для объекта TextBox
 
Добрый день!  
 
Подскажите, пожалуйста, каким образом можно вызвать стандартное всплывающее меню (с командами "Копировать", "Вырезать", "Вставить" и т.д.) для объекта текстовое поле, размещенного на форме?  
 
Если запустить проект с формой, содержащей текстовое поле, то по нажатии на правую кнопку мыши внутри TextBox'а вызов всплывающего меню не происходит ...  
 
Заранее большое спасибо за помощь!
Работа с чтением/записью данных Excel<->Access
 
Добрый день!  
У меня возникла необходимость обращаться к внешней базе данных Access через Excel: получение данных из БД и сохранение в БД измененных в Excel записей.  
 
Каким образом осуществлять первую часть (получение данных) мне относительно понятно как с точки зрения средств Excel, так и VBA. А вот каким образом осуществлять через Excel редактирование БД – не представляю … Опытным путем обнаружил такую возможность в Microsoft Query, однако это неудобно с точки зрения пользователя и совершенно туманно с точки зрения VBA.  
 
Суть задачи такова: пользователь вводит в ячейку Excel значение некоторой величины. Далее (после нажатия запрограммированной кнопки) Excel осуществляет запрос во внешнюю базу данных и возвращает из нее записи, соответствующие заданному полю. Пользователь может редактировать эти записи, и внесенные изменения необходимо вносить в БД Access.  
 
Вот такая непростая (для меня так точно :) ) задача… Понимаю, что решение ее, скорее всего, далеко не тривиально и вряд ли сможет ограничиться советом из двух-трех предложений. Тем не менее, может быть кто-нибудь сможет порекомендовать литературу или источники Интернет, в которых освещается эта тема.  
 
Заранее большое спасибо всем, кто откликнется!
Конвертация TXT в XLS
 
Добрый день!  
 
Помогите, пожалуйста, разобраться в причине следующей проблемы.  
 
Имеется табулированный текстовый файл. Данные из этого файла сохраняются "нарезкой" в пакет текстовых файлов, каждый из которых в процессе процедуры "нарезки" открывается в Excel, данные форматируются и сохраняются как книга Excel. На последнем шаге текущий текстовый файл "нарезки" удаляется.  
 
Если программа работает с большим объемом данных ("выход" "нарезки" более 300-400 файлов) возникает такая ситуация: после подготовки первых двух-трех сотен файлов открывается очередной текстовый файл, после чего программа завершает работу: форматирования данных не происходит, не выполняются следующие за этим другие операторы. При этом ошибок не возникает! (будто программа решила, что ее "миссия выполнена").  
 
Для форматирования данных использую следующий код:  
 
Sub TxtToXls(FN As String)  
Dim WS As Worksheet  
Dim WB As Workbook  
Dim R As Long  
   
 'Открываем текстовый файл FN  
 Workbooks.OpenText Filename:=FN, Origin:=1251, _  
 StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _  
 ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _  
 , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), _  
 Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1)), _  
 DecimalSeparator:=",", TrailingMinusNumbers:=False  
 'Активируем открытую книгу  
 Workbooks(GetFileName(FN)).Activate  
 Set WS = ActiveWorkbook.Worksheets(1)  
 With WS  
   '...  
   'проводим форматирование  
   '...  
 End With  
 'Cохраняем файл как книгу Excel и удаляем текстовый файл  
 FN = Mid(FN, 1, Len(FN) - 4) & ".xls"  
 ActiveWorkbook.SaveAs FN, xlNormal  
 ActiveWorkbook.Close False  
 FN = Mid(FN, 1, Len(FN) - 4) & ".txt"  
 Kill FN  
End Sub  
 
Буду очень признателен за помощь!
Страницы: 1
Наверх