powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запись из vfp9 макроса
10 сообщений из 10, страница 1 из 1
запись из vfp9 макроса
    #39573573
mv123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуйста, помогите перевести этот макрос в vfp9
Selection.AutoFill Destination:=Range("B1066:BY1066"), Type:=xlFillDefault
Range("B1066:BY1066").Select
...
Рейтинг: 0 / 0
запись из vfp9 макроса
    #39573624
EadleRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mv123321,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
LOCAL ii, jj, loExcel, lcPath, loWorkBook, loSheet

loExcel = CREATEOBJECT("Excel.Application")
loExcel.DisplayAlerts = .F.
lcPath = loExcel.Path
loExcel.WorkBooks.Add()
loWorkBook = loExcel.ActiveWorkBook
loExcel.Visible=.T.

loSheet = loWorkBook.WorkSheets(1)

loSheet.Cells(2,1).Value = 1
loSheet.Cells(3,1).Value = 2

* собственно оно
loSheet.Range(loSheet.Cells(2,1),loSheet.Cells(3,1)).AutoFill(loSheet.Range(loSheet.Cells(2,1),loSheet.Cells(10,1)),0)

loSheet.Range(loSheet.Cells(2,1),loSheet.Cells(2,1)).Select()

CANCEL
...
Рейтинг: 0 / 0
запись из vfp9 макроса
    #39573644
EagleRus_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вместо:
Код: plsql
1.
2.
3.
loSheet.Range(loSheet.Cells(2,1),loSheet.Cells(3,1)).AutoFill(loSheet.Range(loSheet.Cells(2,1),loSheet.Cells(10,1)),0)

loSheet.Range(loSheet.Cells(2,1),loSheet.Cells(2,1)).Select()



можно просто написать:
Код: plsql
1.
2.
3.
loSheet.Range("A2:A3").AutoFill(loSheet.Range("A2:A10"),0)

loSheet.Range("A2").Select()




Да, второй аргумент функции AutoFill (который Type:=xlFillDefault), здесь передаётся как 0 (потому как значение xlFillDefault=0).
Если цеплять вначале Excel.h, то можно было бы записать так:
Код: plsql
1.
loSheet.Range("A2:A3").AutoFill(loSheet.Range("A2:A10"), xlFillDefault)
...
Рейтинг: 0 / 0
запись из vfp9 макроса
    #39573661
EagleRus_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, вот ещё что.
В приведённом куске вместо 2-х строк:
Код: plsql
1.
2.
Range("A2:A3").Select
Selection.AutoFill(Range("A2:A10"),xlFillDefault)


использовано просто:
Код: plsql
1.
Range("A2:A3").AutoFill(Range("A2:A10"),xlFillDefault)
...
Рейтинг: 0 / 0
запись из vfp9 макроса
    #39573664
mv123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EadleRus,

Спасибо за быстрый ответ.
Но мне нужно переместить формулу в строке по всем столбцам их всего в одном случае 61, в другом 108(на другом листе)
...
Рейтинг: 0 / 0
запись из vfp9 макроса
    #39573687
EagleRus_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mv123321,

если формула в ячейке B1066, то на столбцы B1066:BY1066 будет как-то так:
Код: plsql
1.
loSheet.Range("B1066").AutoFill(Range("B1066:BY1066"),xlFillDefault)


loSheet - это объект листа книги (из моего примера)
...
Рейтинг: 0 / 0
запись из vfp9 макроса
    #39573703
EagleRus_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот это:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LOCAL loExcel, loWorkBook, loSheet

loExcel = CREATEOBJECT("Excel.Application")
loExcel.DisplayAlerts = .F.
loWorkBook = loExcel.WorkBooks.Open("здесь полный путь и имя твоего excel-файла")
loExcel.Visible=.T.

loSheet = loWorkBook.WorkSheets("здесь имя листа в excel-файле, либо номер листа - но тогда без кавычек")

* собственно оно
loSheet.Range("B1066").AutoFill(Range("B1066:BY1066"), 0)
loSheet.Range("B1066").Select()


можешь скопировать прямо в командное окно фокса и запустить (ессно сначала изменив имя файла и имя листа)
...
Рейтинг: 0 / 0
запись из vfp9 макроса
    #39573727
mv123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EagleRus_гость,
exl.Range(exl.Cells(lrow,2),exl.Cells(lrow,61)).AutoFill(exl.Range(exl.Cells(lrow,2),exl.Cells(lrow,61)),0)
где здесь ошибка?
спасибо
...
Рейтинг: 0 / 0
запись из vfp9 макроса
    #39573753
EagleRus_гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mv123321,

1)
exl - это что?
Должна быть ссылка именно на объект листа. Не на объект самого Excel (!)

2)
Формула, которую надо размножить, в какой ячейке?
Если в exl.Cells(lrow,2), то так:
Код: plsql
1.
2.
exl.Range(exl.Cells(lrow,2),exl.Cells(lrow,2)).AutoFill(exl.Range(exl.Cells(lrow,2),exl.Cells(lrow,61)),0)
                                          ^^^
...
Рейтинг: 0 / 0
запись из vfp9 макроса
    #39573787
mv123321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EagleRus_гость,

Большое спасибо.Заработало.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / запись из vfp9 макроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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