Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 22.01.2025
Сообщений: 1
Excel

Макросы для Mac

22.01.2025, 19:20. Показов 1438. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Столкнулась с непонятной проблемой: у меня есть рабочий макрос, который импортирует данные, путем выбора файла при запуске проводника и принудительно форматирует некоторые столбцы для вывода корректного формата, вся загвоздка заключается в том, что этот макрос необходимо сделать рабочим для Mac, там запускаться должен маковский Finder для выбора данных, подскажите, можно ли как-то макросом Excel запустить Finder и если да - как это сделать?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Sub ImportDataFromFile()
    ' Объявление переменных
    Dim ws As Worksheet
    Dim filePath As String
    Dim lastRow As Long
    Dim importRange As Range
    Dim sourceWorkbook As Workbook
    Dim sourceSheet As Worksheet
    Dim columnsToFormat As Variant
    Dim col As Variant
    Dim data As Variant
    Dim i As Long, j As Long
    
    ' Установите активный лист
    Set ws = ThisWorkbook.ActiveSheet
 
    ' Отключение обновления экрана и расчета формул
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
 
    ' Открытие диалогового окна для выбора файла
    filePath = Application.GetOpenFilename("Excel Files (*.xls; *.xlsx), *.xls; *.xlsx", , "Выберите файл для импорта")
    If filePath = "False" Then Exit Sub ' Проверка, был ли выбран файл
 
    ' Открытие выбранного файла
    Set sourceWorkbook = Workbooks.Open(filePath)
    Set sourceSheet = sourceWorkbook.Sheets(1) ' Предполагаем, что данные на первом листе
 
    ' Определение последней строки в целевом листе
    lastRow = ws.Cells(ws.Rows.count, 1).End(xlUp).Row + 1
 
    ' Определение диапазона данных для копирования
    Set importRange = sourceSheet.UsedRange
 
    ' Копирование заголовков, если это первый импорт
    If lastRow = 2 Then
        ws.Cells(1, 1).Resize(1, importRange.Columns.count).Value = importRange.Rows(1).Value
        lastRow = lastRow + 1
    End If
 
    ' Копирование данных (без заголовков) в массив
    data = importRange.Offset(1, 0).Resize(importRange.Rows.count - 1).Value
    ws.Cells(lastRow, 1).Resize(UBound(data, 1), UBound(data, 2)).Value = data
 
    ' Замена . на , в столбце BL
    Dim blColumn As Range
    Set blColumn = ws.Range("BL2:BL" & ws.Cells(ws.Rows.count, "BL").End(xlUp).Row)
    If Not blColumn Is Nothing Then
        data = blColumn.Value
        For i = 1 To UBound(data, 1)
            If Not IsEmpty(data(i, 1)) Then
                data(i, 1) = Replace(CStr(data(i, 1)), ".", ",")
            End If
        Next i
        blColumn.Value = data
    End If
 
    ' Определение столбцов для форматирования
    columnsToFormat = Array("L", "M", "AL", "AM")
 
    ' Форматирование дат в указанных столбцах
    For Each col In columnsToFormat
        Dim formatRange As Range
        Set formatRange = ws.Range(col & "2:" & col & ws.Cells(ws.Rows.count, col).End(xlUp).Row)
        If Not formatRange Is Nothing Then
            data = formatRange.Value
            For i = 1 To UBound(data, 1)
                If IsDate(data(i, 1)) Then
                    data(i, 1) = Format(dateValue(data(i, 1)), "DD.MM.YYYY")
                End If
            Next i
            formatRange.Value = data
        End If
    Next col
 
    ' Закрытие исходной книги
    sourceWorkbook.Close False
 
    ' Включение обновления экрана и расчета формул
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
 
    ' Уведомление пользователя об успешном импорте
    MsgBox "Данные успешно импортированы и отформатированы!", vbInformation
End Sub
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2025, 19:20
Ответы с готовыми решениями:

При загрузке программы макросы не отключаются - но макросы не срабатывают.
уровень безопасности - средний, при загрузке программы макросы не отключаются - но макросы не срабатывают в чем может быть причина?

Одна база MAC для VLANs based on MAC для всех свитчей
Здравствуйте. Почитал в мануалах как настроить на свитче (S5700) VLANs based on MAC. Очень бы хотелось перейти на такое конфигурирование...

Выбор ноутбука для универа. Mac или не mac
В этом году поступаю в универ на направление тесно связанное с математикой и информатикой, а в частности, с программированием (Java, c++,...

2
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,720
22.01.2025, 21:02
Цитата Сообщение от Chertikk Посмотреть сообщение
можно ли как-то макросом Excel запустить Finder
Если имеется в виду выбор файла - то да, можно. В инете есть такой человек, Ron de Bruin, и на его сайте много советов по маку. Пользовался ими, когда делал варианты для мака людям - но подчеркну, заочно. У меня мака нет, то есть писал, они пробовали.
В целом есть два момента: а) обращение к финдеру зависит от версии макоси, б) у мака есть доступные для пользователя каталоги и не очень доступные. И там вылезает запрос - а вы уверены, что хотите дать доступ программе туда или сюда? Как понимаете, при переборе файлов в цикле это очень доставляет. Майкрософт рекомендует вызывать какую-то процедуру для обхода этого сообщения, но я результатов ее проверки не знаю. Проще класть файлы в доступные каталоги.
Во вложении всякое скачанное по теме мака. И еще раз замечу, что все мои познания по этой теме больше теоретические, чем практические.
Вложения
Тип файла: 7z VBA_Mac.7z (53.5 Кб, 2 просмотров)
2
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,720
18.02.2025, 21:28
Добавлю инфы: http://www.excelworld.ru/publ/... 56-1-0-149
Крокозяблы в формах после открытия там и сям лично наблюдал...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2025, 21:28
Помогаю со студенческими работами здесь

Макросы для Thunderbird
Где можно найти информацию по макросам?

Макросы для отчетов
Помогите, нужно в базе данных создать 2 макроса, которые будут: 1) организовывать диалог с пользователем для вывода одного из...

Макросы для браузеров
Здравствуйте, подскажите пожалуйста есть ли программы на подобии iMacros...!?

Макросы для MS Word
Доброго времени суток! Необходимо в MS Word печатать этикетку так, чтобы номер каждой последующей увеличивался на единицу. Может есть какие...

Макросы для Excel
Мне нужно сделать таблицу, где статус будет автоматически меняться на "Просрочено" через три дня после принятия заказа и высвечиваться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru