Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2014, 11:26   #1
who
Пользователь
 
Регистрация: 11.09.2014
Сообщений: 44
По умолчанию Вставка формул в ячейку

в результате выполнения макроса ‒ изменение combobox в нём 2 колонки, 3 строки, заполнение combobox макросом:
Код:
Private Sub Workbook_Open()
        Dim formul As String
        Dim a As Byte
 Sheets(3).SP.Clear
 b = 0
        For a = 11 To 13
            b = b + 1
            formul = Sheets(1).Cells(a, 7)
            Sheets(3).SP.AddItem b
            Sheets(3).SP.List(b - 1, 1) = formul
        Next a
        End Sub
сам макрос с ошибкой:
Код:
Private Sub SP_Change()
k = Val(SP.SelText) 'конвертация строки в число по первой колонке комбобокса (1,2,3)
    l = SP.List(k - 1, 1) ' получение значения из второго поля выделенной строки комбобокса 
    a = Selection.Row
    b = Selection.Column
    aa = a + Selection.Rows.Count - 1
    bb = b + Selection.Columns.Count - 1
 ' Проверка принадлежности выделенного диапазона нужному:
        If a > 193 Or a < 241 Or b > 18 Or b < 31 Or aa > 193 Or aa < 241 Or bb > 18 Or bb < 31 Then
            For f = a To aa
            xx = "(=ЕСЛИ(S" & f & "="""";"""";""" & l & """))" ' получение формулы
            Sheets(3).Cells(f, 24) = xx ' запись формулы в ячейку
            Next f
        Else
            MsgBox ("Выделите другой диапазон")
        End If
End Sub
получаются несколько формул в соответствующих ячейках, но в скобках такого вида:
Код:
(=ЕСЛИ(S194="";"";"8закSGSolarSilverGray32-14Ar-4-12Ar-4.4.1И"))
если вручную удалить наружные скобки, формула работает, но если их исключить из
Код:
xx = "(=ЕСЛИ(S" & f & "="""";"""";""" & l & """))"
, т.е. сделать так:
Код:
xx = "=ЕСЛИ(S" & f & "="""";"""";""" & l & """)"
при попытке выполнить макрос вылетает с ошибкой.
что я делаю не так?
надо чтобы формулы заполнились и посчитались автоматически

Последний раз редактировалось who; 29.10.2014 в 13:23.
who вне форума Ответить с цитированием
Старый 29.10.2014, 11:52   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

У меня работает
Код:
xx = "=if(S" & f & "="""","""",""" & l & """)"
Смотрите свои разделители.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 29.10.2014, 13:22   #3
who
Пользователь
 
Регистрация: 11.09.2014
Сообщений: 44
По умолчанию

прошу прощения, я так понимаю, у Вас английская версия офиса? или я тоже могу использовать английские формулы в excel?

формула:
Код:
xx = "=ЕСЛИ(S" & f & "="""";"""";""" & l & """)"
работает и у меня
не работает эта:
Код:
Sheets(3).Cells(f, 24) = xx ' запись формулы в ячейку
P.S. что значит разделители?
who вне форума Ответить с цитированием
Старый 29.10.2014, 16:03   #4
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

Цитата:
Сообщение от who Посмотреть сообщение
или я тоже могу использовать английские формулы в excel?
В VBA по другому не канает
kalbasiatka вне форума Ответить с цитированием
Старый 29.10.2014, 16:37   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

В VBA можно и русские формулы писать - с FormulaLocal.
А разделители - это разделители и есть, то что в формуле разделяет аргументы.

По ошибке не понял - какая из двух одинаковых строк работает, какая нет
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 29.10.2014, 16:40   #6
who
Пользователь
 
Регистрация: 11.09.2014
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
В VBA можно и русские формулы писать - с FormulaLocal.
я сам как-раз и нашёл в чём ошибка. FormulaLocal жжёт.
спасибо за отклик

Последний раз редактировалось who; 29.10.2014 в 16:43.
who вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод формул в ячейку с помощью VBA maksim_serg Microsoft Office Excel 3 20.01.2014 23:00
Копирование строки формул при добавлении записи в ячейку Uralmaster Microsoft Office Excel 17 01.02.2011 13:00
Вставка ссылок в редактор формул Word Foxx Microsoft Office Word 0 22.03.2010 22:24
Вставка формул в столбцы faiza Microsoft Office Excel 1 02.10.2009 10:36
Ввод сложных формул в ячейку NikolayGVB Microsoft Office Excel 4 22.01.2009 18:05