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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 295 След.
Копирование умной таблицы с данными и формулами из закрытой книги
 
Цитата
Alexey74 написал:
но меняет имя таблицы
Что мешает переименовать? Допишите
Код
ThisWorkbook.Sheets("Логистика").ListObjects(1).Name = "Логистика_tb"
Удалить 2 последних символа из каждой строки текстового файла
 
pandora777, если файл небольшой (до неск. МБ) и его содержимое уместится в памяти, то можно
Код
Sub Del2Symb()
Dim f As String, d() As String, i&
  f = "c:\temp\textfile.txt" 'путь к файлу
  With CreateObject("scripting.filesystemobject")
    d = Split(.opentextfile(f).readall, vbCrLf)
    On Error Resume Next
    For i = 0 To UBound(d)
      d(i) = Left(d(i), Len(d(i)) - 2)
    Next
    .opentextfile(f, 2).write Join(d, vbCrLf)
  End With
End Sub
Countif для vba массива
 
OSA913, можно. И часть операций желательно вынести из цикла
Код
  s = " " & Join(MyArr, "  ") & " "
  For i = 0 To 3
    x = UBound(Split(s, " " & i & " "))
Debug.Print i, x 'например
  Next i
Макрос который копирует название файла с определенным расширением в определенной папке в ячейку, последний созданный.
 
sokol92, у меня не работает (WinXP). Работает так
Код
Declare Sub OemToChar Lib "user32" Alias "OemToCharA" (ByVal Src As String, ByVal Dst As String)

Sub Макрос2()
Dim s$
  s = CreateObject("WScript.Shell").Exec("cmd /c dir /a-d /o-d /b C:\temp\*.sto").StdOut.readline
  OemToChar s, s
  Range("A1") = s
End Sub
Countif для vba массива
 
Filter работает и с массивами Variant, как в примере. Проблема в том, что эта функция ищет вхождение, т.е. число 10 будет найдено по условию 0.
Можно так
Код
Sub Test()
Dim MyArr(3), x
MyArr(0) = 3
MyArr(1) = 0
MyArr(2) = 30
MyArr(3) = 0
x = UBound(Split(" " & Join(MyArr, "  ") & " ", " 3 "))
End Sub
Изменено: Казанский - 30 Апр 2019 14:03:11
Макрос который копирует название файла с определенным расширением в определенной папке в ячейку, последний созданный.
 
vendigo, если имя файла не содержит русских букв, можно сделать очень просто:
Код
range("A1")=CreateObject("WScript.Shell").Exec("cmd /c dir /a-d /o-d /b C:\temp\*.sto").StdOut.readline
Здесь берется файл из папки C:\temp\
Ошибка есть, а ошибки нет
 
А err.Description чему равно?
Может ошибка возникает где-то раньше - попробуйте закомментировать On Error Resume Next.
Дан ряд чисел через запятую. размножить значение в хвосте.
 
Ради прикола, командой CMD
Код
for /f "tokens=1,2,3 delims=," %i in (T10YIE.csv) do @echo %i,%j,%k,%k,%k,%k >> new.csv
Изменение имен находящихся в папке файлов на имена, указанные в столбце книги Excel
 
Olga H., я кажется понял: сохранять .bat надо в кодировке MS-DOS. Если ваш Блокнот этого не умеет, сохраняйте через Word или WordPad (у меня в WinXP так). Хотя с учетом отличного предложения БМВ сохранять даже не нужно, при вставке в окно CMD кодировка получается правильная.
Если через CMD никак не получается - ищите/пишите/ждите макрос.

artyrH, если путь к файлу содержит пробел, его надо взять в кавычки. Для пути к исходному файлу я этого не сделал, т.к. пробела там не было. Более универсальная формула
Код
="ren """&A1&""" """&B1&".pdf"""
Изменено: Казанский - 21 Апр 2019 09:29:56
Изменение имен находящихся в папке файлов на имена, указанные в столбце книги Excel
 
Olga H., можно формулой в соседнем столбце сформировать команды переименования
Код
="ren "&A1&" """&B1&".pdf"""
, скопировать этот столбец, вставить в Блокнот, сохранить как .BAT в любое место и запустить.
Сцепить ячейки, игнорируя пустые.
 
Если в значениях нет пробелов: сцеплять через пробел, СЖПРОБЕЛЫ, заменить " " на ", "
Особенности работы редактора Visual BaSic при создании пользовательской функции
 
Описал "находку" подробно и с картинками тут: http://www.cyberforum.ru/vba/thread796990.html#post13507381
Особенности работы редактора Visual BaSic при создании пользовательской функции
 
chesas,
Цитата
chesas написал:
выводится окно с предупреждением об ошибке, да ещё и неоднократно. Я не понимаю как и почему это происходит - ведь я только ввёл исходные данные и сразу же хочу остановить выполнение остановом
А, теперь понятно - Вы используете Мастер функций. Он ведь отображает результат вычисления функции, а для этого он вызывает функцию при запуске, а также при любом изменении аргументов в полях ввода. И оказывается, что Мастер функций подавляет точки останова, и оператор Stop тоже. Я этого не знал, потому что никогда не пользовался Мастером функций для отладки своих функций, и, как оказалось, не зря :) При обычной вставке функции в ячейку точки останова и Stop работают нормально.
Изменено: Казанский - 19 Апр 2019 16:37:47
Ошибка в макросе при закрытии документа, Периодическая ошибка при закрытии документа
 
edkudin, мне вообще непонятно, почему эта процедура вызывается при закрытии файла. Но она вызывается. Я удалил этот комбобокс и создал новый с тем же именем и ListFillRange - процедура перестала вызываться при закрытии файла. Но при изменении комбобокса стала возникать ошибка в другом месте - видимо, я не установил какие-то свойства комбобокса. Можете пойти по этому пути, а можете просто подавить ошибку с помощью On Error Resume Next.
Как макросом - запустить случайный макрос, из четырех
 
Цитата
Просто Вова написал:
через запятую
Код
Sub RndMacro()
  Randomize
  Run Split("Макрос1,Макрос2,Макрос3,МакросX", ",")(Int(Rnd * 4))
End Sub
Особенности работы редактора Visual BaSic при создании пользовательской функции
 
Цитата
chesas написал:
при вызове функции получил сообщение, что у данной функции нет аргументов
Какой именно функции? В #1 функция объявлена как Пример, в #8 функция объявлена как Пример1 (а значение присваивается переменной Пример).
Приложите уже файл в соотв. с Правилами.
Изменено: Казанский - 18 Апр 2019 18:41:52
Особенности работы редактора Visual BaSic при создании пользовательской функции
 
chesas, MsgBox в функции - плохая практика. Вместо этого функция может возвращать значение ошибки, как это делают функции листа, например
Код
    If Not IsNumeric(варПогрешность) Then
      Пример = CVErr(xlErrValue) '#ЗНАЧ!
    End If
Использовать End в коде следует только в крайнем случае. Здесь он вообще не нужен.
Помогите удалить квадрат в таблице!, Товарищи помогите пожалуйста удалить квадратик с вводом текста в таблице.
 
Эпидемия?! http://forum.ixbt.com/topic.cgi?id=23:46688
Заполнение значений в зависимости от даты с сохранением предыдущих
 
Цитата
Massacre написал:
или скажите какой примерно макрос
Можно при открытии книги привязать каждый счетчик к нужной ячейке. В модуль ЭтаКнига
Код
Private Sub Workbook_Open()
Dim x As Shape, s As Object, c As Range, r&
  r = Day(Now) + 9          'номер строки, соотв. дате
  For Each x In Worksheets(1).Shapes
    Set s = x.OLEFormat.Object
    If TypeOf s Is Spinner Then
      Set c = Worksheets(1).Cells(r, s.TopLeftCell.Column)
      s.LinkedCell = ""
      s.Value = c.Value
      s.LinkedCell = c.Address
    End If
  Next
End Sub
Левый верхний угол счетчика должен находиться строго внутри столбца, с которым он связан!
Заполнение значений в зависимости от даты с сохранением предыдущих
 
Цитата
Massacre написал:
при нажатии на счётчик, он должен добавлять +1 к итоговому значению по продукту
Всегда +1, при нажатии и "вверх" и "вниз"? Если да, то если
Цитата
Massacre написал:
активными на листе должны быть только счётчики
, то как корректировать ошибочное нажатие?
И почему тогда счетчик, а не простая кнопка?
Изменено: Казанский - 18 Апр 2019 14:55:33
VBA как вставить в ячейку формулу с переменной
 
Kulkijalle, для .Formula, .FormulaR1C1 формулы должны быть на "родном" языке - десятичный разделитель точка, и названия функций на английском.
Так что варианты
Код
Selection.FormulaR1C1Local = "=" & CDbl(time3) & "-ТДАТА()"
'или
Selection.FormulaR1C1 = "=" & Str(CDbl(time3)) & "-NOW()"
Второй вариант будет работать для любой локали, первый - только для русской.
Умные таблицы. Как быстро определить, есть ли в ней данные, Как быстро определить, пустая ли умная таблица
 
Цитата
Jack Famous написал:
Если в пустой умной таблице (УТ) удалить все строки любого поля, то в ней всё равно останется 1 строка под шапкой
В этом случае УТ.DataBodyRange имеет значение Nothing.
Если есть хоть одна строка с формулой, то этот диапазон уже не Nothing, можно проверить .Rows.Count, применить функции СЧЕТ, СЧЕТЗ, СЧИТАТЬПУСТОТЫ (Worksheetfunction.Count и т.д.)
Изменено: Казанский - 18 Апр 2019 12:29:53
VBA Как отобразить путь САМОЙ МОЛОДОЙ ПАПКИ в директории
 
Код
dir /s /ad /o-d
?
Пометка маркерами фраз по карте словоформ, переделка макроса из OpenOffice для Excel
 
Цитата
Fsociety_ написал:
почему вы так формулы любите?
Я люблю то, что эффективно в конкретном случае. Здесь формула заменила два вложенных цикла. Код в разы короче и работает на ~40% быстрее. Если будете обрабатывать большие объемы данных - заметите.
Цитата
Fsociety_ написал:
если вдруг диапазон нужно поменять
Какой именно? Все вычисляется в VBA и подставляется в формулу.
А вот если допустим на листе Ядро таблица начинается не с А1, а с В3 - Вы сразу сообразите, что надо поменять в макросе bigorq?
Скопировать данные с ячейки по найденному слову, Скопировать данные с ячейки по найденному слову
 
Art1989,
Код
=ВПР("*(основний)*";B:B;1;)
Подбор ближайшего от заданного числа с признаком делимости на 11 без остатка
 
Kevin2010,
Код
=ОКРУГЛТ(число;11)
Пометка маркерами фраз по карте словоформ, переделка макроса из OpenOffice для Excel
 
Fsociety_, пробуйте
Код
Sub Fs()
Dim i&, j&, n&
  n = Cells(Rows.Count, 1).End(xlUp).Row - 1
  With Sheets("Карта")
    For i = 1 To .Cells(.Columns.Count).End(xlToLeft).Column Step 2
      j = .Cells(.Rows.Count, i).End(xlUp).Row
      Cells(1, i \ 2 + 2) = .Cells(1, i)
      Cells(2, i \ 2 + 2).Resize(n).FormulaR1C1 = Replace(Replace(Replace( _
        "=IFERROR(LOOKUP(2,1/SEARCH("" ""&Карта!R2C_i_:R_j_C_i_,"" ""&RC1),Карта!R2C_i+1_:R_j_C_i+1_),"""")" _
        , "_i_", i), "_i+1_", i + 1), "_j_", j)
    Next
  End With
  With ActiveSheet.UsedRange: .Value = .Value: End With
End Sub
Пометка маркерами фраз по карте словоформ, переделка макроса из OpenOffice для Excel
 
bigorq, находит "транзакционник" цен в словах лицензия, лицензирование (строки 55, 84)
... как и формула
Код
=ЕСЛИОШИБКА(ПРОСМОТР(2;1/ПОИСК(Карта!$A$2:$A$4;A2);Карта!$B$2:$B$4);"")
;)
Изменено: Казанский - 17 Апр 2019 16:48:45
Преобразование в дату 20180305 (год, месяц, число)
 
Код
=--ТЕКСТ(A1;"0\.00\.00")
Формат столбца - дата
Действия на каждом листе в книге, На каждом листе в активной книге необходимо прописать формулы
 
Kompas13, можно без цикла :)
Код
Sub Макрос1()
    Worksheets.Select
    Range("A20:B20").Select
    Selection.FormulaR1C1 = "=AVERAGE(R[-18]C:R[-2]C)"
    Range("A21:B21").Select
    Selection.FormulaR1C1 = "=SUM(R[-19]C:R[-3]C)"
    Worksheets(1).Select
End Sub
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 295 След.
Наверх