Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/37: Рейтинг темы: голосов - 37, средняя оценка - 4.73
Trooo
1

Ошибка 1004: свойство FormulaArray класса Range

05.10.2008, 18:39. Показов 7217. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Понадобилось написать макрос с кодом вот таким примерно (идейно):
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
Sub if_test()
 
For i = 1 To 20
  If Range("A" & i).Value = "wer" Or Range("A" & i).Value = "qwe" Then
  Range("B" & i + 1 & ":" & "B" & i + 5).Select
  Selection.FormulaArray = "=5"
  End If
 
  If Range("A" & i).Value = "ret" Or Range("A" & i).Value = "wow" Then
  Range("B" & i + 1 & ":" & "B" & i + 5).Select
  Selection.FormulaArray = "=6"
  End If
Next i
 
End Sub
 
Это работает, но условия на содержимое ячеек сложнее и прописывать все варианты таким образом не улыбается. Попробовал записать вот так:
 
Sub er2()
 
  For i = 1 To 20
       If Left(Range("A" & i).Value, 3) = wer Or Range("A" & i).Value = "qwe" Then
          Range("B" & i + 1 & ":" & "B" & i + 5).Select
          Selection.FormulaArray = "=5"
       End If
  Next i
 
End Sub
вот тут ошибка и вылазиет. Может я функцию left непраильвно использую? Слышал про проблемы возникающие из-за длины формулы, но тут вроде символов никак не 255.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2008, 18:39
Ответы с готовыми решениями:

Ошибка 'Нельзя установить свойство HorizontalAlignment класса Range'
Привет, пытаюсь установить выравнивание в ячейке set EApp = CreateObject('Excel.Application')...

Runtime error 1004 нельзя установить свойство SplitColumn класса window
Доброй ночи, почему в 1 книге With ActiveWindow .SplitColumn = 1 ...

'Нельзя установить свойство HorizontalAlignment класса Range'?
Привет, пытаюсь установить выравнивание в ячейке set EApp = CreateObject('Excel.Application')...

Невозможно получить свойство LocationInTable класса Range
Добрый день! Столкнулся с таким моментом: при работе кода, код ошибок не выдает, но для чего он...

1
Частенько бываю
750 / 331 / 42
Регистрация: 20.06.2007
Сообщений: 854
06.10.2008, 07:26 2
2 Trooo:

Скопировал приведенный код - никаких ошибок не появляется. Конечно если "..= wer.." опечатка ( у тебя пропущены кавычки). Может в оригинальном файле чего то. Выкладывай.
Я хотя и не понял, что за хитрый отбор значений, но ИМХО код лучше переписать так:

Код
With ActiveSheet
    For i = 1 To 20
        If Left(.Cells(i, 1), 3) = "wer" Or .Cells(i, 1) = "qwe" Then
            .Range(Cells(i + 1, 2), Cells(i + 5, 2)).FormulaArray = "=5"
        End If
    Next i
End With
0
06.10.2008, 07:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2008, 07:26
Помогаю со студенческими работами здесь

ThisWorkbook.Worksheets('Table').Range(Cells(i, 9), Cells(i, 12)).Select Selection.Delete Shift:=xlUp Ошибка 1004
Помню я с этим уже сталкивался, но забыл как выкрутился....

Ошибка: "Нельзя установить свойство FormulaArray класса Range"
Здравствуйте! Прошу помочь разобраться с такой ошибкой: "Нельзя установить свойство FormulaArray...

БД (Access) error "1004" Невозможно получить свойство Days360 класса WorksheetFunction
Доброе время суток.. Цель работы, создать БД парковки, и все бы хорошо только вот столкнулся с...

Ошибка "runtime error 1004 method range of object global failed"
Ошибка "runtime error 1004 method range of object global failed" при вызове формы. ' Инвестиции...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru