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

Страницы: 1 2 3 След.
Передать данные из Excel в Google Sheets.
 

Здравствуйте. Как можно передать данные определенного диапазона ячеек из Excel в Google Sheets?

Как передавать аргументам UDF «неограниченное» кол-во элементов?
 
Здравствуйте. Хочу написать UDF функцию, чтобы можно было её аргументам передавать несколько значений, которые впоследствии будут обрабатываться, и т.д.
Я так понимаю, что использовать «ИЛИ» и «И» в UDF нельзя. И выходом из ситуации является использовать ParamArray. Но у меня не получается использовать ParamArray для более чем одного аргумента. Как можно нескольким аргументам функции передавать «неограниченное» кол-во элементов?

Код
Т.е. хочу сделать так:
Function myUDF(arg1, arg2, arg3, ParamArray arg4(), ParamArray arg5(), ParamArray arg6())

Код
А могу только:
Function myUDF(arg1, arg2, arg3, ParamArray arg4())

Изменено: rud.666 - 22.05.2021 06:25:44
Как сделать объединенную ячейку в линейку, как в школьной тетрадке?
 
Александр Моторин, по крайней мере записывать текст будет удобнее в объединенную ячейку. Можно вставить слово в середину текста, и весь текст сдвинется вниз.
А потом можно вставлять текст из объединенной ячейки в необъединенные. Если строки в объединенной ячейке короткие, то подойдет это, но строки длинные (сначала скинул не совсем корректный файл пример, без длинных строк, сейчас добавил)
Думаю, можно попробовать макросом отсчитывать кол-во символов, и потом делать перенос текста в ячейку ниже, и т.д.

Ігор Гончаренко, но ведь это не в объединенной ячейке
Как сделать объединенную ячейку в линейку, как в школьной тетрадке?
 

Здравствуйте!

Как в Excel можно сделать объединенную ячейку в линейку, как в школьной тетрадке?

Если делать подчеркивание, то подчеркиваются только слова, т.е. линия не доходит до конца ячейки (можно сделать подчеркивание по ячейке, но это работает только в случае одной строки в ячейки).

Если рисовать линии, и привязывать их к сетке, то при печати они сползают, и эти линии зачеркивают текст. Можно эти линии подстроить так, чтобы при печати всё было нормально, но это будет работать только на одном компьютере, при печати на другом компьютере все будет сбиваться.

Изменено: rud.666 - 21.03.2021 14:20:25 (Изменил текст в файле примере)
Как нажать кнопку(control As IRibbonControl) из надстройки?
 
ZVI, большое спасибо!
Как нажать кнопку(control As IRibbonControl) из надстройки?
 
Игорь, спасибо, получилось! А без внесения изменений в надстройку, получается, это нельзя сделать?
Как нажать кнопку(control As IRibbonControl) из надстройки?
 

Здравствуйте! Хочу нажать кнопку, которая расположена на ленточном интерфейсе макросом, но не получается.

Код из надстройки:

Код
Sub myButton(control As IRibbonControl)   
'хочу вызвать этот макрос
MsgBox "Вы нажали на кнопку!"
End Sub

Sub test(myText As String)   
MsgBox myText
End Sub

'Код из Ribbon панели:
<button id="ItemID" label="Моя кнопка" onAction="myButton" imageMso="AcceptTask" size="large" visible = "true"/>

Макрос тест могу вызвать так:

Код
Sub вызываюМакросТест()
Application.Run "НадстройкаМоя.xlam!Module1.test", "вы вызвали макрос test"
End Sub

Пытаюсь аналогичным способом вызвать макрос «myButton», но не получается. Не знаю, что передавать переменной control. Хочу это сделать, не меняя код из надстройки. Для полноты эксперимента надстройка защищена паролем. Пароль = 123.

Изменено: rud.666 - 07.03.2021 06:31:59 (Добавил файлы)
Создать Excel таблицу в Web.
 

Здравствуйте. У меня есть желание перевести некоторые свои эксельки на сайт. Хочу у вас узнать, как это сделать лучше всего. Есть ли у кого-нибудь подобный опыт?

Мне нужно создать таблицу 20*30 ячеек, и там должен выполняться подобный код:

Код
Sub primer()
Dim cell As Range
    For Each cell In Selection
        cell.Value = cell.Offset(1, 0)
    Next cell
End Sub

Что нужно, чтобы этот код заработал:

  1. у ячеек должны быть адреса. Решение – в таблице HTML для каждой ячейки вручную прописывать ID. (Можно текст кода для таблицы HTML сформировать макросом, но всё равно выглядит как костыль)

  2. нужно определять, какие ячейки в таблице HTML выделены. Решения не нашел, может, нужно как-то преобразовать вот это.

  3. всё должно пересчитываться без обновления страницы. Решение - делать сайт PWA (наверное, тут множество решений)

P.S. и наверное, нужно делать каждую ячейку отдельным объектом. Пока не особо представляю, как это буду делать.

Прошу поделиться опытом и советами, в какую сторону гуглить, и т.д.

Изменено: rud.666 - 25.12.2020 17:45:13
Подставить данные из другой открытой книги не зная ее названия
 

Если в книге с неизвестным названием есть определенная ячейка на активном листе, где всегда одно и тоже значение, то можно применить такой макрос. Только замените значения в строке № 12

Код
Sub вставить_из_другой_книги()
Dim wb As Workbook, активная_ячейка As Range
Dim Новая_книга, Старая_книга, Лист_из_старой_книнги As String
Старая_книга = ActiveWorkbook.Name
Лист_из_старой_книнги = ActiveSheet.Name
Set активная_ячейка = ActiveCell

    ' перебираем все открытые книги
    ' если в одной из книг, на активном листе, в ячейке А1 есть "Определенные слова"
    ' то запоминаем названия этой книги
    For Each wb In Workbooks
        If wb.ActiveSheet.Range("A1").Value = "Определенные слова" Then 'сюда запишите критерий, как можно узнать ту книгу
            Новая_книга = wb.Name
        End If
    Next wb
    
    If Новая_книга = "" Then
    MsgBox "Нужный файл не найден"
    Exit Sub
    End If

активная_ячейка.Offset(0, 1) = Workbooks(Новая_книга).ActiveSheet.Cells(7, 6).Value
активная_ячейка.Offset(0, 2) = Workbooks(Новая_книга).ActiveSheet.Cells(9, 5).Value
активная_ячейка.Offset(0, 5) = Workbooks(Новая_книга).ActiveSheet.Cells(11, 5).Value
активная_ячейка.Offset(0, 6) = Workbooks(Новая_книга).ActiveSheet.Cells(13, 6).Value
активная_ячейка.Offset(0, 8) = Workbooks(Новая_книга).ActiveSheet.Cells(13, 8).Value
активная_ячейка.Offset(0, 9) = Workbooks(Новая_книга).ActiveSheet.Cells(41, 10).Value

''еще можно закрыть новую книгу
'Workbooks(Новая_книга).Close 0
End Sub

Если книга с неизвестным названием не сохранена на компьютере, то макрос может не сработать по этой причине
Изменено: rud.666 - 08.11.2020 18:02:13
Гистограмма на основе формулы
 
Дмитрий(The_Prist) Щербаков, теперь все работает спасибо!
Гистограмма на основе формулы
 
Цитата
_Igor_61 написал:
источник проблемы в цифровой части Вашего Ника
:D  :D
Там еще For Each с SendKeys "{F2}+{Enter}" странно работает: не во всех случаях до конца диапазона проходит. И еще, как выяснилось SendKeys "{F2}+{Enter}"  нормально работает в For Each, если диапазон выделен (Select)

В файле пример, где гистограмма появляется в 30% случаев.
Изменено: rud.666 - 31.10.2020 15:00:50
Гистограмма на основе формулы
 
Дмитрий(The_Prist) Щербаков, в первом случае гистограмма появляется примерно в 30% ячейках. Во втором случае где-то остаются минусы (текст) в значениях ячеек.
Вставить номер строки в заполненные строки
 
Код
Sub вставка_номера_строки()
Dim cel As Range
    For Each cel In Range(Range("D1"), Range("D1").End(xlDown))
    cel.Value = cel.Row
    Next cel
End Sub
Гистограмма на основе формулы
 

Ставить рядом формулу с обрезкой данного текста не совсем удобно

Нашел такой выход: перенос текста в формат ячейки

Скрытый текст
[CODE][/CODE]

Возник вопрос. Чем можно заменить строчку SendKeys "{F2}+{Enter}"? На выполнение этой строчки уходит много времени, а без неё ничего не работает. Строчка cell.Value = cell.Value тоже не помогает.

P.S. Тему, наверное, лучше сменить на "Гистограмма в ячейке с текстом"

Изменено: rud.666 - 30.10.2020 20:20:43
Гистограмма на основе формулы
 

Здравствуйте. Можно ли, а если можно то как сделать гистограмму, чтобы она работала в ячейке, где расположены цифры с текстом? В качестве текста плюсы и минусы после числа.

Поиск пропущенных чисел.
 

Вот еще интересный вариант, но, правда, тоже макросами (. Что делать: откройте этот файл, разрешите макросы, сверните файл. Перейдите в книгу, где нужно работать. Нажмите Ctrl+Q. Следуйте инструкциям.

Правда здесь неудобно то, что если вы добавите чисел в диапазон с пропущенными числами, то придется заново макрос запускать. Хотя можно написать макрос, который будет запускаться сам при изменении значений в определенном диапазоне)

Своё выпадающее меню при нажатии ПКМ по фигуре
 

Андрей VG, у меня получается “расширять” ваш файл: добавлять новые фигуры, и назначать им свои контекстные меню на ПКМ, но не понимаю как это всё сделать с нуля. Если я создаю новый файл, вставляю те же макросы, добавляю фигуры, даю им такие же имена, как у вас в файле, то ничего не получается. Подскажите пожалуйста, что не так.

Поиск пропущенных чисел.
 
Можно макросом сделать
Своё выпадающее меню при нажатии ПКМ по фигуре
 
Андрей VG, большое Вам спасибо, теперь все работает, как я и хотел  :)  
Своё выпадающее меню при нажатии ПКМ по фигуре
 

О, так для некоторых задач даже и лучше, но сейчас я пытаюсь сделать тоже самое, но только после нажатия правой кнопки мыши на фигуру.

Своё выпадающее меню при нажатии ПКМ по фигуре
 
Читал, с Shapes тоже не получается
Своё выпадающее меню при нажатии ПКМ по фигуре
 
С определением "активной" фигуры всё получилось, а с созданием контекстного меню для фигур - нет. Если заменить идентификатор с "Cell" на "ContextMenuShape", то Excel ругается, - говорит "недопустимый вызов процедуры или аргумент (ошибка 5)".
Код
Sub контекстное_меню_для_фигур()
    With Application.CommandBars("ContextMenuShape").Controls.Add(Type:=msoControlButton, before:=1, temporary:=True)
        .Caption = "Моя кнопка"
        .OnAction = "мой_макрос"
    End With
End Sub
Что я делаю не так?  
Изменено: rud.666 - 24.10.2020 16:35:57
Своё выпадающее меню при нажатии ПКМ по фигуре
 

Здравствуйте. Можно ли сделать так: нажимаешь ПКМ на одну фигуру, появляется одно меню, нажимаешь на другую, другое меню?

Получается проделать такой фокус с разными диапазонами, а с фигурами - нет. Не знаю как определить имя активной фигуры, и еще, если не сбрасывать старое меню (Application.CommandBars("Cell").Reset), то оно не появляется при нажатии ПКМ по фигуре.

VBA не видит открытую книгу, (не сохранённая выгрузка данных в Excel)
 
Попробую запустить запись действий макрорекодером из этого файла
VBA не видит открытую книгу, (не сохранённая выгрузка данных в Excel)
 
Макрорекодер не записывает действия, выполненные в этой книге. Правда я запускал запись макроса из другого файла. В понедельник попробую из этой книги, с выгрузкой данных
VBA не видит открытую книгу, (не сохранённая выгрузка данных в Excel)
 

Здравствуйте. У меня возникла такая проблема. Одна программа выгружает данные в Excel. После этого мне нужно копировать эти данные макросом в другой файл, но не получается: VBA не видит эту книгу. Если активирую эту книгу, и запускаю макрос msgbox activeworkbook.name, то выводится имя предыдущей активной книги, если запускаю цикл по перебору имён всех открытых книг, то выводятся все книги, кроме этой. И в окне Project-VBAProject эта книга не отображается. Когда эту книгу закрываю с сохранением, и потом открываю, то все работает как надо. Как тогда скопировать данные макросом не знаю. Excel 2010.

Изменено: rud.666 - 17.10.2020 17:52:34
Закрыть файл Excel из сетевой папки, который открыт другим пользователем.
 
БМВ, спасибо
Закрыть файл Excel из сетевой папки, который открыт другим пользователем.
 

Здравствуйте. При копировании данных из первого файла Excel во второй файл Excel, нужно, чтобы второй файл не был открыт другим пользователем. Если второй файл Excel открыт, можно ли его как-нибудь закрыть? Или узнать имя пользователя, который его открыл? Или сделать разрешение только на просмотр файла, но разрешить редактирование его макросом?

Два диапазона в одну переменную
 

Юрий М, итоговый макрос будет такой: я прохожу циклом for i=1 to 500 по каждой ячейке всех диапазонов, и если это число (i) везде отсутствует, то макрос его записывает в определённую ячейку. Т.е. макрос записывает пропущенные числа. Наверное, можно было и без объединения диапазонов в одну переменную делать, но вот пошел таким путём. Мне кажется так будет проще потом к макросу добавлять новые диапазоны, и т.д.

Два диапазона в одну переменную
 
Андрей VG, большое спасибо!
Страницы: 1 2 3 След.
Наверх