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

Страницы: 1
Сохранение неоднородного форматирования при автозамене текста в строке, Если в ячейке формат различный, то при автозамене формат ячейки становится таким же как и первый символ
 
Если в строке используется, к примеру, надстрочные символы м², °С и т.д., то при замене через "найти и заменить" формат изменится.

Я собрал макрос, который перед заменой сохраняет форматирование, а после замены - восстанавливает исходный формат ячейки.
Проблема в том, что мой макрос работает весьма неоптимально. Время работы в приведенном мной файле-примере составляет 4 секунды (слишком много)
Хотелось бы оптимизировать код, но я не знаю как.
Замена текста с сохранением форматирования
 
Здравствуйте.
Хочу поделиться макросом, который при замене какого-либо куска текста в ячейке, оставляет форматирование остального текста в исходном состоянии.
На Листе1 присутствуют три кнопки: две кнопки "Start" и одна "Restore"(восстановление)
Кнопки старт заменяют однократно один текст на другой.
Макрос первой кнопки "Start" сохраняет форматирование группы символов.
Макрос второй кнопки "Start" сохраняет форматирование каждого символа.

Проблема заключается в том, что при первом запуске "Start" №1 время работы макроса составляет около 9 секунд, а при последующих запусках время уменьшается до 0.6 секунд.

Подскажите, пожалуйста, в чем может быть проблема.
Копирование форматированной даты в виде текста
 
Здравствуйте.  
 
Допустим есть ячейка с датой в формате [$-FC19]«Д» ММММ ГГГГ "г."
То есть вместо 17.12.12 будет выводится «17» декабря 2012 г.  
 
Вопрос, как в макросе строковой переменной присвоить значение = "«17» декабря 2012г.", вместо "17.12.12" ?  
 
Заранее спасибо.
Фильтр в сводной таблице по датам, больше чем требуемая.
 
Здравствуйте.  
 
Подскажите, как в сводной таблице сделать фильтр "позже задаваемой даты". То есть нужно чтобы можно было ввести дату и посчитаются только те данные, которые были созданы после необходимой даты
В документе Exccel 2010 заблокирована возможность вставлять изображения
 
Открыл чужой документ в формате 2010 и в нем заблокирована возможность что-либо вставлять, в том числе и нужные мне изображения. Подскажите, пожалуйста, в чем может быть проблема? Никогда с подобным не сталкивался.
Можно ли окно формы и окно рабочей книги программно пристыковать рядом?
 
Вопрос теоретический, поэтому без примера.
функция .Replace изменяет форматирование ячейки. Как это исправить?
 
После применения фукции .Replace вся ячейка в которой происходит замена приобретает формат самого первого символа в этой ячейки.    
Написал коротенький макрос, который выделяет замещенный текст жирным шрифтом, однако понимаю что это слабое решение. У кого-нибудь есть идеи как можно по другому обойти "эту фичу" функции .Replace?  
 
Sub Replace2(WhatFind As String, Replace As String)  
 
Dim Finded As Range  
Dim temp As Integer  
 
Set Finded = Cells.Find(what:=WhatFind, lookat:=xlPart)  
If Finded Is Nothing Then Exit Sub  
 
temp = InStr(1, Finded, WhatFind) - 1  
With Finded  
   Finded.Value = Left(Finded, temp) + Replace + Right(Finded, Len(Finded) - temp - Len(WhatFind))  
   Finded.Characters(Start:=temp, Length:=Len(Replace) + 1).Font.FontStyle = "Bold"  
End With  
 
End Sub
Проверка доступности сетевой папки
 
Как проверить доступность сетевой папки до непосредственного обращения к файлам, находящимся в этой папке?
Вывод на экран сообщения с активной ссылкой на ячейку листа
 
Как простым способом вывести на экран сообщение, в котором бы имелась ссылка на ячейку,  кликнув на которую можно перейти к интересующей ячейке.
проблема с функцией замены текста в Word-документе по таблице из Excel
 
Здравствуйте.  
Следующая функция должна принимать в качестве аргументов объект на документ Ворд, замещаемый текст и замещающий текст.  
Sub Find_Replace(ByRef W As Object, FindText As String, ReplacText As String)  
With W.Range.Find  
                   .Text = FindText  
                   .Replacement.Text = ReplaceText  
                   .Forward = True  
                   .Wrap = 1  
                   .Format = False: .MatchCase = False  
                   .MatchWholeWord = False  
                   .MatchWildcards = False  
                   .MatchSoundsLike = False  
                   .MatchAllWordForms = False  
                   .Execute Replace:=2  
End With  
End Sub  
 
Причем, если использовать этот кусок кода без функции - напрямую, то все работает.  
Поскажите, пожалуйста, что я упустил.  
Заранее благодарю за ответы.
Удаление дубликатов из выпадающего списка на панели инструментов
 
В командную панель можно добавлять элемент в виде выпадающего списка.  
CommandBars(1).Controls.Add(Type:=msoControlComboBox)  
Потом в этот элемент с помощью .AddItem можно добавлять элементы.  
Как осуществить проверку на наличие дубликата при добавлении нового элемента и удалении этого "старого" дубликата?  
 
Код следующий:  
 
Sub CreateSimpleFindbar()  
On Error Resume Next  
CommandBars("FindBar").Delete  
On Error GoTo 0  
With CommandBars.Add("FindBar")  
 With .Controls.Add(Type:=msoControlComboBox)  
 .Caption = "Что ищем?"  
 .OnAction = "NewFind"  
 .Width = 100  
 .Height = 10  
 End With  
 .Position = msoBarTop  
 .Visible = True  
End With  
End Sub  
 
Sub NewFind()  
   On Error Resume Next  
   Cells.Find(What:=CommandBars("FindBar").Controls(1).Text, After:=ActiveCell, LookIn:=xlFormulas, _  
       LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _  
       MatchCase:=False, SearchFormat:=False).Activate  
    CommandBars("FindBar").Controls(1).AddItem CommandBars("FindBar").Controls(1).Text  
End Sub
Функция "найти" в виде панели инструментов
 
При вызове функции "найти" (Ctrl+F) выползает отдельное окошко.  
Мысль такая: эту функцию выводить не в виде окна, а виде приклепляемой панели инструментов.  
Эту задумку я уже реализовывал, но потерял все исходники, а восстанавливать немного лениво.  
Вопрос: есть ли какая-нибудь существующая надстройка для Excel, реализующая данную фичу?
Использование коллекции names для хранения значений
 
Sub NameYes()  
x = "Yes"  
ActiveWorkbook.Names.Add Name:="store", RefersTo:=x  
End Sub  
 
Sub NameCheck()  
If ActiveWorkbook.Names("store").Value = "Yes" Then MsgBox "Yes!": Else MsgBox "No"  
End Sub  
 
В данном коде ActiveWorkbook.Names("store").Value равно <Out of context>, т.е. это не работает. Подскажите, как будет правильно?
Для разных групп пользователей, работающих с одним файлом - разные макросы. Как это сделать?
 
Допустим, есть одна табличная сетевая база, которую могут открывать и редактировать пользователь "А" и "Б". Соответственно, для каждого пользователя есть свой набор макросов. Как сделать так, чтобы макросы и элементы управления для пользователя "Б" были не видны пользователю "А" и наоборот?  
Вариант с локальным сохранением макросов плох тем, что при изменении имени файла-базы перестают работать и макросы.
Сортировка по дате создания файла
 
Здравствуйте.  
С помощью Application.FileDialog(msoFileDialogFilePicker) производится выбор файлов.  
Помогите написать сортировку по дате создания файлов.  
Сортировка должна одновременно делать проход по .SelectedItems и формировать новый массив.
Нахождение последней ячейки диапазона
 
Извесно, что можно по разному найти последнюю ячейку, например:  
1) .Range("c" & Rows.Count).End(xlUp).Row  
2) LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count  
3) ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row  
Так какой же из этих способов рациональнее применять?
Выделение дубликатов цветом
 
С новым годом! Дорогие товарищи!  
Как сделать выделение дубликатом цветом описано в разделе приемы.  
Но нужно то же самое, только данные должны совпадать сразу в трех столбцах.  
Получился такой код:  
Sub del_double()  
For i = 7 To 2190 - 1  
 For j = i + 1 To 2190  
   If Cells(i, 1) = Cells(j, 1) And Cells(i, 2) = Cells(j, 2) And Cells(i, 3) = Cells(j, 3) Then  
   Cells(j, 3).Interior.ColorIndex = 3  
   End If  
 Next j  
Next i  
End Sub  
В связи с большим количеством данных в таблице, выполнение этого кода мягко говоря медленное.  
Пожалуйста, подскажите, как можно улучшить или вообще по другому сделать эту задачу.  
Заранее благодарю.
Автофильтр: проблема определения количества найденных данных
 
Здавствуйте!  
Предположим в коде для поиска значения используется такой код:  
Range("A1").AutoFilter field:=3, Criteria1:="=" & n, где n - искомый элемент  
 
Как определить количество строк удовлетворяющих заданному условию?  
 
Заранее благодарю за ответы.
DDE: ошибка #Н/Д в формуле связи с внешней программой при инициализации макроса.
 
Здравствуйте.  
Нужно при изменении одного параметра DDE связи(Bid, Ask), например Ask, скопировать на лист сразу все значения, т.е. и Bid и Ask.  
При инициализации связей формулы выдают значение #Н/Д, т.е. данные отсуствуют.  
Как сделать задержку, чтобы на листе отсутствовали ячейки с "#Н/Д"?
Время работы макроса
 
С помощью какого кода, можно вычислить время выполнения макроса?
Выбор файлов с помощью Аpplication.FileDialog
 
Здравствуйте.  
Подскажите, можно ли сделать, чтобы при открытии диалогового окна Аpplication.FileDialog  
выбор файлов осуществлялся в конкретной, заранее известной папке?
workbooks.opentext
 
Здравствуйте.  
Известен полный путь к текстовому файлу.  
Задачи 1)открыть текстовый файл с помощью workbooks.opentext, 2)обработать его, 3)при завершении обработки закрыть.  
Есть несколько вариантов с использованием пользовательской функции, которая возвращала бы ссылку на открываемый текстовый файл:  
I)Создать ссылку на объект workbooks.opentext (не работает)  
Функция  opentext по идее должна возвращать ссылку на объект workbook, но при попытке присвоить объект  
Set NewBook = workbooks.opentext.....  
Выдается ошибка на opentext.  
II)Использовать просто имя файла. Но как грамотно из полного имени файла, выделить только его название(нужно для последующего закрытия)  
III) Использовать следующий код:  
Dim AppExcel As Excel.Application  
Set AppExcel = New Excel.Application  
AppExcel.Workbooks.OpenText ...  
(У меня данный код не работает как нужно: файл не отображается)  
Рад буду узать ваши соображения на этот счет.
Автоматическое открытие файлов в порядке их создания
 
Здравствуйте.  
В некой папке хранятся текстовые файлы, необходимо консолидировать данные из этих файлов в один экселевский так, чтобы данные шли от более ранних к позним.  
Подкажите, как это можно сделать.
Сохранение листа книги в виде отдельного файла
 
Подскажите, пожалуйста, как будет выглядет в коде VBA операция по копированию выбранного листа в новую книгу. Оперция, приведенная на картинке, автоматически не записывается должным образом в коде командой "записать макрос".  
Как создать новую книгу, в которой не будет других листов, кроме скопировавшегося?  
Мне кажеться вариант с созданием книги и удалением в ней пустых листов избыточным.  
Заранее благодарен за любое объяснение.
Страницы: 1
Loading...