Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Значение ячейки в MS Exel, Как присвоить значение ячейки 
:(
    Опции темы
Guest_Коп
  Дата 26.1.2003, 22:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как в VBA (MS Exel) присвоить ячейки значение переменной?
Мне нужно свойству Formula ячейки присвоить значение некоторой переменной. Но когда я пытаюсь сделать это следующим путем:
Код

Range("A2").Formula = form$

вылазит ошибка.
  Вверх
cardinal
Дата 27.1.2003, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата
Range("A2").Formula = form$


Лично я по одной строке ничего сказать не могу. Например полезно было бы знать, что ты переменной своей приписываешь. Если "это самое" не соответствует тому, что от тебя ожидает свойства Formula, то это один из возможных причин той самой ошибки и скорее всего так оно и есть.

Цитата
вылазит ошибка.


Ошибки бывают разные, обычно у них есть "имя" и номер, по которому можно что-то про них сказать, а так кто тебе что может ответить.




--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Guest_Коп
Дата 27.1.2003, 22:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Сначала, я запсываю в эту переменную саму формулу из ячейки, затем меняю определенное слово на новое (например, "Структура" на "Материал"), затем хочу присвоить формуле значение этой переменной (она типа String, при Debug посмотрел).
Текст ошибки:
Код
Run-time error '1004':
 Application-defined or object-defined error

  Вверх
cardinal
Дата 28.1.2003, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Код
Sub x()
Dim form$
form$ = ' напиши сюда то, что ты переменной приписываешь
' тут ты меняешь слово например, "Структура" на "Материал"
' вопрос как ты это делаешь
Range("A2").Formula = form$
End Sub


Дополни в исходнике то, чего не хватает. Предполагаю, что дело в syntax, но так как ты его стесняешься писать smile.gif , то сказать тут больше ничего нельзя...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Step
Дата 28.1.2003, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



Товарищи, есть довольно неплохие элементы для работы с Екселем, могу выслать, пишите кому надо. Они самопальные, по этому кое чего не делают, но с я чейками работают на ура и без всяких А2 а просто 1 2


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Guest_Коп
Дата 31.1.2003, 00:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вот исходный код:
Код
nam = ListBox1.Column(0, 0) & TextBox1.Text
lc = ListBox1.ListCount
ReDim lnew(lc) As String
For i = 0 To ListBox1.ListCount - 1
'Заносим в массивы названия листов
lnew(i) = ListBox1.Column(0, i) & TextBox2.Text
Next i

For i = 0 To ListBox1.ListCount - 1
'Копирование листа и его переименование
namei = ListBox1.Column(0, i) & TextBox1.Text
namep = ListBox1.Column(0, i) & TextBox2.Text
Worksheets(namei).Copy before:=Worksheets(Sheets(nam).Index)
Worksheets(namei & " (2)").Name = namep
'Просмотр формул в ячейках на наличие ссылок на копируемые листы и
'замена их на новые
   For n = 1 To 50
       For j = Asc("A") To Asc("Q")
       form$ = Worksheets(namep).Range(Chr(j) & n).Formula 'Заносим в form формулу из ячейки
       k = 0 'Зануляем счетчик
           While (k <= Len(form$))
               md = 0
               k = k + 1
               If (Mid$(form$, k, 1) = "!") Then
               m = k - 1
               If (Mid$(form$, m, 1) = "'") Then
               num = 1
               m = m - 1
               Else
               num = 2
               End If
               news$ = "" 'В переменную заносим имя листа
               While ((stopr(num, m, form$)) And (m >= 1))
                   news$ = Mid$(form$, m, 1) + news$
                   m = m - 1
               Wend
               ind = Look(news$) 'Функция сверяет ссылку со скопир-ми листами, если она совпадает,
'то возвр-ся ее номер, иначе возвр-ся -1
               If (ind <> -1) Then
               md = Len(lnew(ind)) - Len(news$)
               news$ = Mid$(form$, 1, m) & lnew(ind) & Mid$(form$, k, Len(form$) - k + 1)
               form$ = news$
               End If
               k = k + md
               End If
           Wend
       If (Worksheets(namep).Range(Chr(j) & n).Formula <> form$) Then
           Worksheets(namep).Range(Chr(j) & n).Activate
           ActiveCell.Formula = form$
       End If
       Next j
   Next n
Next i


Не присваивает!
  Вверх
cardinal
Дата 31.1.2003, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



В конце поменяй свой код вот на такой:

Код

' ...
If (Worksheets("Лист2").Range(Chr(j) & n).Formula <> form$) Then
    Worksheets("Лист2").Range(Chr(j) & n).Formula = form$
End If
'...


Теперь диагноз такой:
1. если срабатывает (как у меня), то все решено cool.gif (я надеюсь smile.gif )
2. если не срабатывает, то у тебя формула в процессе корявится confused.gif
2.1. ты мне присылаешь формулу (в смысле обе) и процесс идет дальше

p.s. но возможно конечно еще и то, что ты в цикле слишком долго сидишь
или что нибудь такое (присваиваешь тому, чего у тебя нет confused.gif), с понятными последствиями.

Успехов!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Коп
Дата 2.2.2003, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 11.7.2002

Репутация: нет
Всего: нет



Я так уже делал, но не срабатывает. И с циклом все в порядке - при Debug'е строка form типа String и с нужным значением. Я не понял, что тебе прислать надо?
PM MAIL ICQ   Вверх
cardinal
Дата 3.2.2003, 04:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Ну формулы ты же меняешь у себя в цикле или я это не правильно понял. Ты берешь формулу одной ячейки и присваиваешь эту формулу другой при этом меняя ее если надо. Так вот эту формулу, на которой прога вылетает напиши.

Цитата

с нужным значением

так вот я и хотел еще раз посмотреть с нужным или нет.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Коп
Дата 3.2.2003, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 11.7.2002

Репутация: нет
Всего: нет



Нет. Я беру формулу из определенной ячейки, изменяю ее и записываю в ту же ячейку. Т. е. мне нужно только изменить формулу в конкретной ячейки.

PM MAIL ICQ   Вверх
Guest
Дата 27.10.2004, 13:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите пжалста значения ошибок в Exel :qstn
  Вверх
~FoX~
Дата 27.10.2004, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



Цитата(Guest @ 27.10.2004, 13:29)

Подскажите пжалста значения ошибок в Exel

Конкртней - тебе нужниы ошибки екселя или ВБА?
Напиши код ошибки.
Посмотри хелп в конце концов!



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0558 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.