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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2010, 18:44   #1
4istii_listo4ek
Пользователь
 
Регистрация: 15.10.2010
Сообщений: 17
Злость Неправильное присваивание значения ячейке

Скачать Лист Microsoft Excel.xls с WebFile.RU
Создано Microsoft Office Excel 2010. Неправильно работает макрос:
Цитата:
Sub Создание_листа()
Dim A As String
A = "=" & Date - 1 & "!D2 + I2"
Sheets.Add.Name = "Test"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Всего шт."
Range("B2").Select
ActiveCell.FormulaR1C1 = A
End Sub
И вместо присваивания ячейке B2 значения
Цитата:
=14.10.2010!D2 + I2
макрос присваивает этой ячейке значение
Цитата:
='14.10.2010'!'D2' + 'I2'
Помогите, пожалуйста, решить проблему.
4istii_listo4ek вне форума Ответить с цитированием
Старый 15.10.2010, 18:56   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Если вы хотите сослаться на другой лист, то в некоторых случаях добавляются эти одинарные кавычки. Так и должно быть для даты, а вот остальные кавычки, наверно, надо убрать
Код:
ActiveCell.Formula = "=" & Date - 1 & "!D2 + I2"

Последний раз редактировалось motorway; 15.10.2010 в 19:00.
motorway вне форума Ответить с цитированием
Старый 15.10.2010, 18:58   #3
4istii_listo4ek
Пользователь
 
Регистрация: 15.10.2010
Сообщений: 17
По умолчанию

Они добавляются сами, в том то и дело
4istii_listo4ek вне форума Ответить с цитированием
Старый 15.10.2010, 19:00   #4
4istii_listo4ek
Пользователь
 
Регистрация: 15.10.2010
Сообщений: 17
По умолчанию

Макрос превращает строку
Цитата:
"=" & Date - 1 & "!D2 + I2"
в
Цитата:
='14.10.2010'!'D2' + 'I2'
а нужно, чтобы превращал в
Цитата:
=14.10.2010!D2 + I2
4istii_listo4ek вне форума Ответить с цитированием
Старый 15.10.2010, 19:01   #5
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Посмотрите пример выше, я добавил
Первые кавычки добавляются Экселом, так должно быть
motorway вне форума Ответить с цитированием
Старый 15.10.2010, 19:03   #6
4istii_listo4ek
Пользователь
 
Регистрация: 15.10.2010
Сообщений: 17
По умолчанию

Я пробовал и так:
Цитата:
Sub Создание_листа()
Sheets.Add.Name = "Test"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Всего шт."
Range("B2").Select
ActiveCell.FormulaR1C1 = "=" & Date - 1 & "!D2 + I2"
End Sub
Результат тот же самый.
4istii_listo4ek вне форума Ответить с цитированием
Старый 15.10.2010, 19:14   #7
4istii_listo4ek
Пользователь
 
Регистрация: 15.10.2010
Сообщений: 17
По умолчанию

Как бы я ни пробовал, хоть
Цитата:
ActiveCell.FormulaR1C1 = "=I2+" & Date - 1 & "!D2"
всё равно всё берётся в кавычки
Цитата:
='I2'+'14.10.2010'!'D2'
4istii_listo4ek вне форума Ответить с цитированием
Старый 15.10.2010, 19:14   #8
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Вы видите мое сообщение? Посмотрите наверх, там есть пример кода
motorway вне форума Ответить с цитированием
Старый 15.10.2010, 19:16   #9
4istii_listo4ek
Пользователь
 
Регистрация: 15.10.2010
Сообщений: 17
По умолчанию

Извините, не заметил, что там без R1C1. И это помогло!!! Спасибо Вам огромное!!!
4istii_listo4ek вне форума Ответить с цитированием
Старый 15.10.2010, 19:27   #10
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от 4istii_listo4ek Посмотреть сообщение
Я пробовал и так:

Результат тот же самый.
попробуйте так
Sub Создание_листа()
Dim A As String
A = "=" & Date - 1 & "!D2 + I2"
Sheets.Add.Name = "Test"
Sheets("Test").Range("B1") = "Всего шт."
Sheets("Test").Range("B2").Formula = A
End Sub
да и I2 будет относится соответственно к листу test, a D2 к листу 14.10.2010

это результат
='14.10.2010'!D2 + I2
motorway все правильно Вам написал
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматическое изменение значения в ячейке TStalin Microsoft Office Excel 7 07.09.2010 18:19
присваивание полю значения из запроса Desha Microsoft Office Access 0 12.06.2010 18:34
Recordset - присваивание значения поля Desha Microsoft Office Access 6 11.06.2010 20:38
Присваивание ячейке значения в зависимости от условия DimonPS Microsoft Office Excel 3 12.11.2009 14:01
Присваивание тексту Memo значения из TStringList Alex Cones Общие вопросы Delphi 10 14.08.2009 21:07