Всем привет. Как посмотреть уровень расположения именованной ячейки разобрался, а как программно изменить , например , с Worksheet на уровень Workbook, не понимаю. Фрагмент кода:
Код
With iName
Cells(i, 1).Value = .Name
Cells(i, 3).Value = TypeName(.Parent)
' у одних имён Name выводится значение Worksheet, а у других Workbook
End With
Например, нужно изменить уровни Worksheet на уровень Workbook. Как это сделать в vba? Интересует как именно присвоить новое значение Workbook.
Всем привет. Попал в ситуацию, когда комп за собой не потащишь, а данные нужно вносить в таблицы и находу делать выборку, сортировку и т.п. Попробовал несколько моб.приложений (WPS Office, Documents To Go) на своем смартфоне и планшете (оба андроидные) и оказалось, что в них документ Excel открывается и даже редактируется, а макросы не работают (кнопки на листах и события). Может подскажете такое моб.приложение, чтобы макросы работали. Конечно лучше если бесплатные версии.
Всем привет. Нужна ваша помощь. В модуле VBA конкретной ячейке присваивается формула. После исполнения VBA-кода формула не срабатывает, а в соотв. ячейке имеет место "Ошибка-недопустимое имя". Фрагмент кода:
Код
Set SW_1 = Application.ThisWorkbook.Worksheets(Sheet_Name)
.....
SW_1.Range(SW_1.Cells(i + di - 1, stolb_1_symvol_del + 5).Address).Formula = "=СУММ(E492:E505)"
Результат на скриншоте-02. НО если зайти в строку формул при активной (ошибочной) ячейке и нажать Enter, то формула срабатывает (см. на скриншоте-02 красную поз.2) Я конечно понимаю, что можно по очереди "пройтись" по всем этим ячейкам с "Ошибкой" понажимать Enter, Но это не устраивает хотя бы потому, что в таблице их много и это не рационально.
Подскажите, как в Экселе в модуле vba выполнить SQL запрос на выборку из таблицы эксель , а также выполнить SQL запрос на удаление или добавление данных в таблицу эксель ?
Приветствую всех. Нужно определить тип данных в ячейке.
If (TypeName(Range(Cells(stroka_aktiv, N).Address).Value) = Date) Then ' (1) если тип Date Range(Cells(stroka_aktiv, N).Address).Value = Empty End If If (TypeName(Range(Cells(stroka_aktiv, N).Address).Value) = String) Then ' (2) если тип String Range(Cells(stroka_aktiv, N).Address).Value = "" End If If (TypeName(Range(Cells(stroka_aktiv, N).Address).Value) = Empty) Then ' (3) если тип Empty Range(Cells(stroka_aktiv, N).Address).Value = Empty End If If (TypeName(Range(Cells(stroka_aktiv, N).Address).Value) = Double) Then ' (4) если тип Double Range(Cells(stroka_aktiv, N).Address).Value = 0 End If
Сравнения (1) (2) (4) не получаются. Если сравнение (4) переделать: Range("B22".Value = TypeName(Range("A22".Value) ' (*) If (TypeName(Range(Cells(stroka_aktiv, N).Address).Value) = Range("B22".Value) Then ' если тип Double Range(Cells(stroka_aktiv, N).Address).Value = 0 End If (*) - это в отдельную ячейку "A22" записать , например, 152, то в ячейке "B22" сохранится Double и сравнение (4) начинает работать. Но мне так не нравится. Что нужно писать вместо Date , String, Double , чтобы сравнения работали?
Добрый день. Написал две процедуры. Одна (нижняя) вызывает другую (верхняя) с передачей четырех значений (dt_nach, kt_nach, dt_kon, kt_kon )
Private Sub Perenos_saldo_i_obnulit_strok1(dt1 As String, kt1 As String, dt2 As String, kt2 As String) MsgBox " столбец=" & dt1 End Sub
Private Sub CommandButton2_Click() Dim dt_nach, kt_nach, dt_kon, kt_kon As String dt_nach = "e" kt_nach = "f" dt_kon = "r" kt_kon = "s" Perenos_saldo_i_obnulit_strok1(dt_nach, kt_nach, dt_kon, kt_kon) ' ошибка компиляции: Syntax error Perenos_saldo_i_obnulit_strok1("e","f","r","s") ' тоже ошибка компиляции: Syntax error End Sub
Не пойму в чем ошибся.
Пробовал верхнюю процедуру писать так Private Sub Perenos_saldo_i_obnulit_strok1(ByVal dt1 As String, ByVal kt1 As String, ByVal dt2 As String, ByVal kt2 As String) и так Private Sub Perenos_saldo_i_obnulit_strok1(dt1 , kt1 , dt2 , kt2 As String) и так Private Sub Perenos_saldo_i_obnulit_strok1(ByVal dt1 , kt1 , dt2 , kt2 As String)
Здравствуйте. Задачка: в ячейку2 (лист2) нужно записать число получившееся в результате вычисления формулой в ячейке1 (лист1) (но не формулу, как у меня получилось). В связи с этим поискал на форуме и нашел в архиве похожий вопрос: http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=16687 пост №17 содержит пример, в котором я хочу разобраться , что бы применить к своему случаю. Растолкуйте пожалуйста значения (смысл) команд по-порядку в макросе:
' ZVI:2010-07-25 http://www.planetaexcel.ru/forum.php?thread_id=17730 ' Значение ячеек с именами "ОТКУДА*" будут автоматически скопированы в ячейки с именами "КУДА*" ' Например: ' Имя ячейки B3: "Откуда1" ' Имя ячейки B4: "Куда1" ' При пересчете формул значение из B3 будет скопировано в B4 Private Sub Workbook_SheetCalculate(ByVal Sh As Object) Dim Rng As Range, N As Name, s As String Application.EnableEvents = False ' откюч. обработку событий On Error Resume Next ' вкл. игнорирование ошибок выполнения For Each N In Names s = UCase(N.Name) ' переводит значение строковой переменной на все заглавные буквы If s Like "ОТКУДА*" Then Set Rng = Range(N.RefersTo) If Rng.Parent Is Sh Then Range(Names("КУДА" & Mid(s, 7)).RefersTo) = Rng.Value End If End If Application.EnableEvents = True ' включ. обработку событий Next End Sub Хочу не только решить задачку, но и понять этот макрос конкретно. например подчеркнутое - это имя процедуры , а SheetCalculate- это событие или что? и что должно передаваться на вход процедуры в качестве Sh.
На листе "Главн_2" некоторым ячейкам присвоили собственные имена (для удобства обращения к ним из vba) . Как из vba можно проверить есть ячейка с таким именем (например "Сч282_39") или удалена пользователем? А так же как можно из vba назначать такие собственные имена нужным ячейкам?
(Это строка из модуля - запись числа 530 в ячейку "Сч282_39" на листе "Главн_2" Worksheets("Главн_2").Range("Сч282_39").Value = 530 )
Всем привет. Подскажите пожалуйста начинающему пользователю Экселя. В меню ФАЙЛ - Свойства - Состав есть "именованные диапазоны" с названиями "Товар" и "Товары". Как к ним добраться с целью редактирования или удаления? Хотел сделать выпадающий список на базе листа "Прайс" - не получилось. Делал : Данные - Проверка... - Список - =прайс. выдает ошибку "Указанный именованный диапазон не найден". что не правильно?