powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с экселем плз
12 сообщений из 12, страница 1 из 1
Помогите с экселем плз
    #36270049
Nnnnnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно в эксель выкинуть формулу, в зависимости от условия - формулы разные.
Никак не могу добиться нужного результата как ни бьюсь (( уже была куча экспериментов с "," и ";", одинарными и двойными кавычками... самое путное чего удалось добиться - вывод в ячейку самого текста формулы..
DATEDIF - это функцыя РАЗНДАТ экселя, с параметром "Y" вычисляет количество лет между двумя датами.
Вот что написано в коде:

Код: plaintext
...cells(i,j).value= IIF(!EMPTY(duvol),'=DATEDIF(RC[-3],R1C6,""Y"")','=DATEDIF(RC[-1],R1C6,""Y"")')

У меня уже оба глаза замылились, может кто-нибудь увидит то бревно, которое я не замечаю?

ЗЫ: не посылайте меня читать статьи по записи макросов и созданию отчетов в экселе, другие формулы я в эксель выкидывала уже.
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270063
Гуру VBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nnnnnn , а какой установлен формат в ячейке куда нужно вывести формулу?
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270144
Nnnnnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Гуру VBA,

Числовой.
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270205
Гуру VBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй так:

Код: plaintext
1.
2.
3.
4.
5.
6.
LOCAL lcStroka1, lcStroka2

lcStroka1 = '=DATEDIF(RC[-3],R1C6,""Y"")'
lcStroka2 = '=DATEDIF(RC[-1],R1C6,""Y"")'

...Cells(i,j).FormulaR1C1 = IIF(!EMPTY(duvol), &lcStroka1, &lcStroka2 )
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270210
Гуру VBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270412
Nnnnnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Гуру VBA,

А мне функция понравилась ) Мне еще с ее помощью месяцы и дни высчитать надо =) там параметр другой.
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270517
Nnnnnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, забыла написать, так, как ты предложил, не работает. Пишет missing expression.
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270726
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гуру VBAПопробуй так:

Код: plaintext
1.
2.
3.
4.
5.
6.
LOCAL lcStroka1, lcStroka2

lcStroka1 = '=DATEDIF(RC[-3],R1C6,""Y"")'
lcStroka2 = '=DATEDIF(RC[-1],R1C6,""Y"")'

...Cells(i,j).FormulaR1C1 = IIF(!EMPTY(duvol), &lcStroka1, &lcStroka2 )
1) Ув. "Гуру", а какого ...кхе-кхе... тут делают макроподстановки ???
2)Хехель 2003 вообще ругается на эту функцию, говорит - нет такой. Так что проблема, наверное, не в фоксе, а в хехеле.
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270815
Nnnnnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2tanglir,
Эксель не ругается на нее и вполне понимает, тестировала на нескольких документах, все нормально.

И вывод ее в эксель я сделала, после второго дня экспериментов пришла к виду:

Код: plaintext
1.
2.
3.
4.
5.
6.
	IF EMPTY(lddate)
	r1='Q'+ ALLTRIM(STR(i))
        ...
	_screen.activeform.oExcel.cells(i,j).Formula= '=DATEDIF(&r1,F1,"Y")'
	ELSE 
	...
	ENDIF  

Вобщем, думаю, что ему не нравилось тот способ обращения к ячейкам именно в этой формуле вот он и психовал.
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270891
Гуру VBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот полностью рабочий вариант - как для Excel 2003, так и для Excel 2007.

Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
LOCAL  loExcel, lnNom, lcStroka1, lcStroka2

#DEFINE True .T.
#DEFINE False .F.
lcOldError = ON("ERROR")
ON ERROR loExcel = .NULL.
loExcel = GetObject(, "Excel.Application")
ON ERROR &lcOldError

IF ISNULL(loExcel)
	loExcel = CreateObject("Excel.Application")
ENDIF


WITH loExcel

	.Workbooks.Add()	

	lcStroka1 = '=DATEDIF(RC[-3],R1C6,' + '"' + 'Y'  + '"' + ')' 
	lcStroka2 = '=DATEDIF(RC[-1],R1C6,' + '"' + 'Y'  + '"' + ')' 

	* Исходные данные
	*----------------------------
	.Cells( 1 ,  1 ).Value = "01.01.2005"
	.Cells( 1 ,  3 ).Value = "01.01.2008"
	.Cells( 1 ,  6 ).Value = "01.01.2009"
	
        *---------------------------------------------------------------------------
	* При lnNom >  0  в ячейке D1 получаем результат работы формулы равный  4 
	* При lnNom <=  0  в ячейке D1 получаем результат работы формулы равный  1 
	*---------------------------------------------------------------------------
	lnNom =  1 

	* Результат
	*----------------
	.Cells( 1 ,  4 ).Formula = IIF(lnNom >  0 , lcStroka1, lcStroka2 )
	
	.Range("A1").Select

ENDWITH        &&WITH loExcel


loExcel.Visible = .T.

...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36270997
Nnnnnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Гуру VBA,

Спасибо =) У тебя красивше )
...
Рейтинг: 0 / 0
Помогите с экселем плз
    #36271012
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гуру VBA, некоторые вещи можно писать гораздо проще.
Если VFP9 то ON ERROR можно на TRY... CATCH заменить
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
TRY
    loExcel = GetObject(, "Excel.Application")
CATCH
   TRY
       loExcel = CreateObject("Excel.Application")
   CATCH
       loExcel = NULL
       MessageBox('MS Excel не установлен',  16 , 'ОШИБКА')
   ENDTRY
ENDTRY

и тут непонятно зачем столько плюсов
Код: plaintext
1.
	lcStroka1 = '=DATEDIF(RC[-3],R1C6,' + '"' + 'Y'  + '"' + ')' 
	lcStroka2 = '=DATEDIF(RC[-1],R1C6,' + '"' + 'Y'  + '"' + ')' 
это то же самое
Код: plaintext
1.
	lcStroka1 = '=DATEDIF(RC[-3],R1C6,"Y")' 
	lcStroka2 = '=DATEDIF(RC[-1],R1C6,"Y")' 
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с экселем плз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]