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

Страницы: 1 2 3 4 5 След.
Как обнулить (не отключить) накопленные события книги
 
А проверить, пересчет какой книги вызвал событие?
Код
If Not Sh Is sh1 then Exit Sub
После выполнения Beforerightclick что нужно добавить в код что бы не появлялось контекстное меню
 
Код
Option Explicit
в помощь...
Прерывание отображения работы макроса
 
Мне не кажется, что название темы должно звучать с точностью до наоборот? Для "прерывания отображения..." как раз достаточно:
Цитата
Dmitriy XM написал:
Application.ScreenUpdating = False,
однако, вопрос в другом, а, так как:
Цитата
Михаил Комиссаров написал:
DoEvents - помогло. Файл перестал зависать
и, самое главное:
Цитата
Михаил Комиссаров написал:
как правильно это можно обозвать
я бы предложил название темы "Избавиться от прерывания отображения при работе с макросом".
После выполнения Beforerightclick что нужно добавить в код что бы не появлялось контекстное меню
 
Совсем "после" не получится, а вот во время:
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  'тут наша обработка
  Cancel = True
End Sub
Перебор всех значений из ячеек и выворка уникальных
 
Цитата
Malkov111123 написал:
до 150 тысяч строк
Что-то я не представляю, как при таком количестве исходных данных можно не использовать какой-либо символ или букву, т.е. результат изначально - все возможные буквы и символы...
Как скопировать формулу
 
Можно так:
1. Вставить пустой столбец между столбцами C и D
2. Скопировать диапазон № 2 и и вставить туда, где  № 3
3. Удалить ранее вставленный столбец
как извлечь картинку из Excel?, без фотошопа
 
А зачем пересохранять в html? Открыть xlsx файл с помощью архиватора (можно сначала переименовать xlsx в zip) и извлечь из папки xl/media... А дальше как советовали из png в jpeg
Оператор "Is" в VBA возвращает "False" для одинаковых диапазонов
 
Цитата
vikttur написал: Похоже на правду.
Тест:
Код
Sub sub1()
  Dim R1 As Range
  Dim R2 As Range
  Set R1 = Range("A1")
  Set R2 = Range("A1")
  MsgBox ObjPtr(R1) & vbCr & ObjPtr(R2)
End Sub
Цитата
vikttur написал: не происходит с листом
Видимо, потому что лист как-бы член коллекции, а диапазон вычисляется в зависимости от параметра
Оператор "Is" в VBA возвращает "False" для одинаковых диапазонов
 
Полагаю, свойство Range при каждом обращении создает новый объект, поэтому для Is они разные.
Уведомление об открытии файла Excel
 
Цитата
vikttur написал:
сопроводительный текст
Цитата
"письмо не может быть отправлено, так как сотрудник ФСБ, проверяющий вашу почту временно, отлучился"
Список листов книги с помощью макроса
 
Не вдаваясь в моменты использования Select и ActiveSheet - приведенная процедура выводит имена всех рабочих листов, как и предполагается. Но выводит их в одну и ту же ячейку, поэтому и остается в результате только имя последнего листа.
Что Вы хотите получить? Имена книг в разных ячейках или в одной? Как раз не хватает примера того, что необходимо получить.
Судя по замене Cells(i,2) на Cells(9,2) (видимо у Вас в вопросе "на" пропущено) - в одной ячейке. Тогда:
Код
Sub List()
 
Sheets("Task 3 (VBA)").Select
Range("Table1[Names of tabs in this file]").Select
 
Dim i As Integer
For i = 1 To ActiveWorkbook.Worksheets.Count
  If i>1 Then ActiveSheet.Cells(9, 2).Value = ActiveSheet.Cells(9, 2).Value & vbCr 'Добавляем символ переноса строк
  ActiveSheet.Cells(9, 2).Value = ActiveSheet.Cells(9, 2).Value & ActiveWorkbook.Worksheets(i).Name
Next i
End Sub
Если это так, то название темы надо поправить. "Список имен рабочих листов книги в одной ячейке с помощью макроса"
Немодальная UserForm без шапки, с прозрачностью и возможностью перетаскивания
 
Off
Цитата
БМВ написал:
- неодализм сплошной  
Так ведь с ошибкой написано. Неодуализм  :)  
Получить тип данных, записанных в ячейке
 
Судя по вопросу, Вы хотите получит тип данных в ячейке, а вот кодом получаете тип данных ячейки, который, как раз, и есть Range. Нужно понимать, что
Код
[B2]
эквивалентно
Код
Range("B2")
а свойство Range возвращает объект типа Range. У этого объекта есть свойство Value, с помощью которого можно получить доступ к значению в ячейке, Ваш код должен выглядеть так
Код
Sub Data_type()
    [K2] = TypeName([B2].Value)
    [K3] = TypeName([G2].Value)
End Sub        


Название темы, наверное, надо изменить на "Получить название типа данных в ячейке"
Работа с 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
Страницы: 1 2 3 4 5 След.
Наверх