Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 След.
Работа с Excel разных версий в нескольких процессах
 
Цитата
RAN написал:
Интересует поведение данного кода в различных версиях Ofis, и различных ОС.
Люблю мучать старичков)). WinXP SP3, OfficeXP SP3 - результат 2.
Причем, когда сначала открылось не 4 файла, а порядка 10, причем очень знакомых, дошло, что xlsx файлы преобразуются в xls и отрываются из папки Temp (повод почистить)), тестовая программа и пооткрывала все такие файлы (тогда результат был - 1). После переноса в нужную папку, все отработало (создались папки и пересохранились файлы).
Как с помощью VBA добавить в ячейку текст с сохранением существуещего форматирования текста внутри ячейки?
 
Код
ActiveCell.Characters(0, 0).Insert "Дополнительная строка" & Chr(10)
Как с помощью VBA добавить в ячейку текст с сохранением существуещего форматирования текста внутри ячейки?
 
Так Вам и не нужно знать форматирование каждого символа, ведь по условиям задачи форматирование одинаково для каждой строки. Достаточно запомнить форматирование первых символов строк, которое после изменения строки применить к нужным строкам
bedvit. Как использовать решения автора, COM и XLL. Отличие и подключение
 
Цитата
Jack Famous написал:
У меня не получается запустить даже ранним связыванием
Однако, на картинке явная ошибка - скобки там как бы и не нужны... Ну или Call...
Определение границ цикла for/next
 
Эффективнее, наверное, удалять сразу все ненужные листы, как-то так:
Код
Sub sub1()
  Dim a()
  Dim i
  ReDim a(Sheets.Count - 2)
  For i = 0 To UBound(a)
    a(i) = i + 2
  Next i
  Sheets(a).Delete
End Sub
Почему ОКРГЛВВЕРХ работает неточно?
 
Цитата
vikttur написал:
Пока что похоже на глюк функции
Похоже, функция округления здесь ни при чем. Если ввести, например
Код
=22,1+0,1
, то также будет ошибка.
Настроить диаграмму, чтобы она строилась не по количеству строк данных, а по объёму валюты
 
Цитата
oleg_dd написал:
Как настроить диаграмму, что б она строилась не по количеству строк данных, а по объёму валюты?
Вероятно, использовать тип диаграммы "точечная"
Прокрутка пропускает строки, Слишком быстрая прокрутка
 
Прокрутка в Excel именно пропускает строки, "прокручивает на несколько строк". Количество прокручиваемых строк задается в настройках мыши в Windows и влияет на все приложения. Например, если в настройках прокрутки - 3 строки, то при прокрутке в Excel вверху экрана после первой строки будет отображаться четвертая, потом седьмая и т.д. Естественно, если размер строки больше, например, половины экрана, строки могут "перескочить" экран и не отобразиться. В других программах может быть другая логика поведения прокрутки - прокручивать или на количество строк или на какое-то расстояние, не зависящее от размера текста.
Чтобы увидеть "прокручиваемые" строки без изменения из размеров можно, например, как уже предложено, уменьшить масштаб (удобно как раз колесиком мыши с нажатой клавишей Ctrl), или воспользоваться прокруткой с клавиатуры (не то же, что перемещение выделения) с использованием клавиши Scroll Lock (ScrLk) и клавиш перемещения курсора.
Ошибка есть, а ошибки нет
 
Цитата
RAN написал:
Лист Immadiate девственно чист.
Так ведь Stop срабатывает.
2013: Некорректное суммирование, но корректный расчет формул
 
Можно также изменить выравнивание в ячейках на "по значению", тогда числовые значения прижмутся к правому краю, текстовые - к левому.
Цитата
bigblacknothing написал:
Если в проблемных ячейках войти в  режим редактирования и выйти из него нажав ENTER то числа из ячеек  начинают считаться корректно.
Этим способом как-бы заново вводится значение в ячейку и применяется форматирование. Просто изменить формат ячеек не поможет кроме как заново их ввести или же использовать специальную вставку с умножением на 1 (или сложением с 0).
Опрос про использование MS Office и т.п.
 
Цитата
Alemox написал:
Ни в 2010 дома, ни в 2013 на работе в WORD не работает.
Много раз обжигался со случайным ненужным сохранением - при закрытии Ctrl+W промах в Ctrl+S заставлял вытаскивать файл из архива...
Опрос про использование MS Office и т.п.
 
Цитата
Мартын написал:
ctrl+C и ctrl+V
А этими я так и не научился пользоваться, только по старинке Ctrl+Ins, Shift+Ins
Цитата
Alemox написал:
во всех программах сохраниться Ctrl+S, а в Word Shift+F12.
А разве в Word Ctrl+S не работает? Кстати, Shift+F12 и в Excel неплохо срабатывает.
Получить адрес пересчитываемой ячейки
 
Можно создать пользовательскую функцию, возвращающую 0, и в нужных ячейках добавить ее в формулу. В функции можно получить ячейку с помощью Application.Caller, ну и ее адрес: Application.Caller.Address. Сохранить, например, в коллекцию. А в событии листа Calculate использовать сохраненное, после чего не забыть очистить коллекцию.
Создать надстройку из простого файла
 
Цитата
Михаил Витальевич С. написал:
если имена неизвестны
Но что-то определяет нужность файла и листа? Вот это и проверять.
Вставка разрыва при условии размещения двух меток, определяющих место расположения рисунка
 
Цитата
BukvaED написал:
ОШИБКА таже - Предполагается наличие окончания инструкции.может все таки не написании дело а разных версиях чего либо (экселя, VB)?
Дело в разных версиях языка. Даже не в версиях - VBScript все же другой язык. И предполагается наличие окончания инструкции там, где в VBA продолжение есть, а в VBS - нет. В Вашем случае - в объявлении переменных, в VBS нельзя объявит переменные с указанием типа. Попробуйте вместо
Код
Dim sh As Worksheet
написать
Код
Dim sh
ну и в других местах, где объявляются переменные.
Цитата
BukvaED написал:
у меня нет макроса в самом Экселевком файле, к сожалению!
А вот здесь, учитывая слабые знания VB, VBA и VBS (и отличия в них), я бы порекомендовал писать нужный макрос именно в VBA, а потом уже перенести (с правками) в VBS.
Вставка разрыва при условии размещения двух меток, определяющих место расположения рисунка
 
Цитата
Sanja написал:
Это не оператор, и ничего он Вам не вернет. Это функция переноса строки на новую строку
Наверное, не надо вводить в заблуждение новичка, он и так
Цитата
BukvaED написал:
могу называть неверно
vbNewLine - это текстовая константа, набор символов, который, во многих случаях, при выводе строки (например с помощью MsgBox) показывает, что в данном месте надо выводит на следующей строке. И, в данном случае, не имеет абсолютно никакого отношения к разрывам строк в Excel, а применена только чтобы сообщение в MsgBox не было слишком широким.
Цитата
Sanja написал:
Трудно двигаться вперед без базовых знаний, на одной практике
Однако большинство так и делает...
Найти ячейку, содержащую определённый текст и произвести арифметические действия со значениями рядом
 
Можно провести нужные сравнения в отдельном столбце, например (если в региональных настройках разделитель целой и дробной части - запятая):
=И(НЕ(ЕОШ(ПОИСК("[d]";D1)));ПОДСТАВИТЬ(ЛЕВСИМВ(D1;ПОИСК("[";D1)-1);".";",")-ПОДСТАВИТЬ(ПРАВСИМВ(D1;ДЛСТР(D1)-НАЙТИ("]";D1));".";",")>0,2)
и фильтровать уже по результатам.
И да, в теме наверное нужно "Фильтр со сложным условием"
Изменено: Alec Perle - 28 Мар 2019 16:58:18
Сравнить дату в ячейке с диапазоном (при выполнении условий).
 

В ячейку E2, потом можно растянуть

Код
=ВЫБОР(СУММПРОИЗВ((A2=Списки!A$2:A$3)*(C2=Списки!B$2:B$3)*(D2=Списки!C$2:C$3)*((B2>=Списки!D$2:D$3)*(B2<=Списки!E$2:E$3)+2*(B2>=Списки!F$2:F$3)*(B2<=Списки!G$2:G$3)))+1;"не найдено";"обучение";"испытательный срок") 
Внесение изменений во все однообразных формул на листе при редактировании одной из них
 
Если листы идентичны, то можно сначала их выделить, а потом вносить правки. Изменения будут (не только формул!) на всех выделенных листах.
В качестве темы - одновременное редактирование формул на нескольких листах.
Фильтр работает до 10 текстбокса, на последующих вываливает ошибку Subscript out of range., Есть форма, но с багами. Помогите поправить
 
Тогда не проще и называть их Tbx01, Tbx02 и т.д.?
Замена имени листа в формуле в макросе на переменную
 
Если в z имя листа уже с восклицательным знаком, то:
Код
"=" & z & "A1 + " & z & "E1"
и
Код
Dim z As variant
лучше поменять на
Код
Dim z As String
[ Закрыто] подскажите в чем ошибка в макросе на VBA, моя первая подпрограмма не работает
 
Для начала, Вам необходимо отредактировать свой пост и оформить код тегом (для этого нужно воспользоваться кнопкой <...>).
А ошибка не совсем в макросе. Попробуйте вычислить формулу, например, на калькуляторе для представленных значений x.
Ошибка Run-time error '91 Object variable or With block variable not set' после внесения изменений в файл
 
А что при ошибке содержится в переменной iFoundRng?
Не смог воспроизвести ошибку, но в любом случае, если нет уверенности в существовании объекта при обращении к его свойствам не помешает его проверить. Даже в примере к справке такая проверка есть:
Код
'Example
'This example finds all cells in the range A1:A500 that contain the 
'value 2 and changes their values to 5.
With Worksheets(1).Range("a1:a500")
    Set c = .Find(2, lookin:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            c.Value = 5
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
В Вашем случае проблемную строку нужно заменить на
Код
Loop While Not iFoundRng Is Nothing And iFoundRng.Address <> firstAddress
Out of Memory при добавлении строк в код
 
Иногда, при длительной отладке кода, возникают всякие ошибки, правда, "Out of memory" не встречал, но невозможность компилирования при полностью рабочем макросе (с десяток модулей классов) была. Возможно, неизбежные ошибки в процессе отладки каким-то образом накапливаются в файле. В таких случаях обычно помогает:
Цитата
Андрей VG написал:
Экспортируйте модули, классы, формы из проекта данной книги и импортируйте в проект новой книги.
Кстати, это можно сделать довольно быстро просто "перетаскиванием" в Project Explorer модулей из одного проекта в другой...
не печатается нижняя граница одной ячейки
 
Попробуйте в шаблоне поставить разрыв страницы между строками 5 и 6 (или 13 и 14). На просмотре также не будет границы. А если снова установить нижнюю границу у ячеек в строках 5 и 13 (не верхнюю в строках 6 и 14), она будет отображаться полностью. После этого после вставок строк граница тоже присутствует.
Получение значения из таблицы по заданному ключу или номеру строки.
 
Название однозначно придется поменять - ничего здесь массового нет. Просто получение значения из таблицы по заданному ключу или номеру строки.
Для чисел 1-4 используйте (пример для числа 1,x в строке 14)
Код
=ИНДЕКС($C$3:$C$9;ПОИСКПОЗ($J14;$B$3:$B$9;0))
для 5-7 (пример для числа 5,x в той же строке)
Код
=ИНДЕКС(C$1:C$369;СТРОКА()-$N14)
Запуск макроса по динамическому имени
 
Цитата
Ігор Гончаренко написал:
толкает людей в такие крайности, на такие авнтюрные и фантастические решения
А мне вот интересно, если топикстартер начнет развивать свой проект до намного большего количество тестов, в какой момент он сдастся и поймет Вас. Хотя... Если делать по принципу - сделал тест и забыл, то можно и кучу разных макросов написать со временем...
Запуск макроса по динамическому имени
 
Цитата
Blazh написал:
макрос должен проверить правильно ли ответили
Вот здесь-то вся собака зарыта. По-любому это должен быть один макрос, и тогда уже не важно, 3, 30 или 300 листов содержат вопросы. Не знаю таких тестов, в которых ну никак нельзя было проверку провести универсальным способом.
Как сохранить все окна редактора VBA (модуля) чтобы в следующий раз открыть его в том же месте.
 
Насчет запоминания не скажу, а место можно запомнить, просто сохранив какое-либо кодовое слово в комментариях и при открытии искать его. Еще можно специально оставить ошибку - при компиляции ругнется именно там.
Суммирование по подчеркнутому шрифту.
 
Цитата
evgenij_sar написал:
Сначала составил, подчеркнул по табелю ночные и нажал на F9
Тогда не логичней повесить макрос, который проведет нужные вычисления и запишет из в ячейку, на кнопку, и нажимать ее когда надо пересчитать
Страницы: 1 2 3 4 5 След.
Наверх