On-line: PSP, SergKis, гостей 2. Всего: 4 [подробнее..]
АвторСообщение



Пост N: 45
Зарегистрирован: 05.06.07
ссылка на сообщение  Отправлено: 13.12.07 02:49. Заголовок: Команды Excel


Где можно найти полный перечень команд Excel, доступных из Харбор через TOleAuto().
В примерах нужных вариантов не нашел.
Например
Как получить номер строки/столбца текущей ячейки?
Как получить номер текущей страницы?
Как выбрать нужную страницу?
Как управлять рамками?
Где найти значения Excel-констант типа xlRight?
И т.п.
Из доступных источников есть справка по MS Excel Visual Basic из дистрибутива Excel.
Думаю что там есть все команды. Но как их преобразовать в Харбор?
Например это
With Worksheets("Sheet1").Range("B2").Borders(xlBottom)
.LineStyle = xlBorderLineStyleContinuous
.Weight = xlThin
.ColorIndex = 3
End With

P.S.
Вроде не понимает нотации R1C1.
//oSheet:Range('R16C2:R16C8'):Font:Bold := .T.
oSheet:Range('B16:H16'):Font:Bold := .T.
Или нужно дать команду на переключение нотации?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 42 , стр: 1 2 3 All [только новые]







Пост N: 250
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 05.07.08 16:31. Заголовок: Pasha пишет: Речь и..


Pasha пишет:

 цитата:
Речь идет о длинных ключах или ключах переменной длины ?
Если о длинных, то думаю, индек будет работать.


Провёл эксперимент - длинные индексные ключи CDXов в xHarbour работают!

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 256
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 26.09.08 16:17. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
Подскажите, есть ли для ActiveSheet возможность указания в качестве Range сразу всей доступной информации, как для ворда oWord:ActiveDocument:Content ? Или что-нибудь типа этого? А если нет, то как проще всего обнаружить правый край информации и нижний её край, чтобы выделить область?


Спасибо, подсказали добрые люди:
x = oExcel:ActiveSheet:Range("A1"):CurrentRegion:Columns:Count
y = oExcel:ActiveSheet:Range("A1"):CurrentRegion:Rows:Count
wstr = "A1:" + CHR(ASC("A") + x - 1) + NTRIM(y)

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 63
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 26.05.10 16:41. Заголовок: А как выделить рамку..


А как выделить рамку на нужный диапазон?
Так, например, я поставлю рамку на одну клетку:
oSheet:Cells(7,1):BorderAround:=1
А если нужно выделить "D5,D7"?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1454
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.05.10 16:55. Заголовок: BorderAround - это с..


BorderAround - это свойство Range

Range для группы ячеек определяется так:
oRange := oSheet:Range(oSheet:Cells(nRow1, nCol1), oSheet:Cells(nRow2, nCol2))


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 47
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 29.11.11 10:26. Заголовок: Добрый день, как уда..


Добрый день, как удалить строку в файле Excel?

oExcel := TOleAuto():New( "Excel.Application" )
oExcel:Visible := .F.
oExcel:Workbooks:Open(cFileXls2, 0)
oRange := oExcel:ActiveCell:SpecialCells(xlLastCell)
cRecno := oRange:Row
cColumn:= oRange:Column
oAs :=oExcel:ActiveSheet()
?cColumn,cRecno
For Ni := 1 To cRecno
Xl_Name:=Rtext(oSheet:Cells(Ni+4,2):Value)
Ol_Code:=Upper(Alltrim(Hb_AnsiToOem(Xl_Name)))
If Ni+4>Rc_OilKol*Rc_OffKol
oAs:Rows(Ni+4):Delete
Endif
Next


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2174
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.11.11 10:54. Заголовок: Oskar_AAA пишет: До..


Oskar_AAA пишет:

 цитата:
Добрый день, как..



Запускаете Excel
Сервис - Макросы - Начать запись

Выполняете необходимые действия, останавливаете запись, изучаете полученный макрос.
Повторяете полученный материал в харборе.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 253
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 30.11.11 08:06. Заголовок: вот, к примеру, запи..


вот, к примеру, запись макроса с удалением 2й строки:
Sub Макрос1() 
'
' Макрос1 Макрос
'

'
Rows("2:2").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
End Sub


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 48
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.11.11 13:10. Заголовок: Вчера сделал, пример..


Вчера сделал, пример кода:

For Ni = 1 To cRecno
oAs:Rows(Ni+4):Select()
oAs:Rows(Ni+4):Delete()
Next


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 71
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 14.03.12 16:01. Заголовок: Потребовалось работа..


Потребовалось работать с разными листами.

Если нужно создать новый лист, открываю файл и создаю лист так:

oExcel:Workbooks:Open(cFile)
oExcel:Worksheets:Add()
oSheet := oExcel:Get("ActiveSheet")

Все работает.


Пытаюсь выбрать конкретный лист при открытии файла.

Так:

oExcel:Workbooks:Open(cFile)
oExcel:WorkSheets(3)
oSheet := oExcel:Get("ActiveSheet")

Или так:

oExcel:Workbooks:Open(cFile)
oExcel:WorkSheets("G")
oSheet := oExcel:Get("ActiveSheet")

Не открывается. Т.е. сам файл открывается, но не на том листе.

Что я делаю не так?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2302
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.03.12 17:47. Заголовок: rvu пишет: Что я де..


rvu пишет:

 цитата:
Что я делаю не так?



Надо так:

oBook := oExcel:ActiveWorkBook
oSheets := oBook:Sheets

oSheets:Item(nSheet):Select()
или
oSheets[nSheet]:Select()

в зависимости от диалекта харбора
и затем:

oSheet := oExcel:ActiveSheet


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 72
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 21.03.12 11:49. Заголовок: Спасибо! Заработало...


Спасибо! Заработало.
Еще вопрос возник: а как комментарии к ячейке записывать?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2316
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 21.03.12 16:19. Заголовок: rvu пишет: Еще вопр..


rvu пишет:

 цитата:
Еще вопрос возник: а как комментарии к ячейке записывать?



У меня ms office не установлен, поэтому смотрю по хелпу.
Судя по всему, надо для объекта Range выполнить действия:

oRange:AddComment()
oRange:Comment:Text := "Text"

А лучше включите запись макросов, сами добавьте комментарий, и посмотрите, как это делается

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 73
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 22.03.12 10:50. Заголовок: Работает. Спасибо!..


Работает. Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 49
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 10.04.12 07:22. Заголовок: Добрый день, возник ..


Добрый день, возник вопрос : Как определить свойство Font:Bold ячеки ? (oAs:Rows(Ni,1):Font:Bold=.t.) т.е мне нужно обрабатывать только строки с выделенным шрифтом или если Font:Bold=.T.
Есть ли какая то функция?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 310
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 10.04.12 09:18. Заголовок: Гугльнул на "Exc..


Гугльнул на "Excel bold" - вот, например:
http://ask.metafilter.com/105810/Detect-bold-text-in-MS-Excel

 Q: I have a very large MS Excel spreadsheet in Mac Office 2008 (yuk). 
I want to find every cell that contains bold text and append an asterisk
to it -- i.e. "bold cell text" becomes "bold cell text*". I can probably find
a Windows machine if necessary. How can this be done automatically?

A: The following macro will do it, though it'll take a while,
as it considers every cell on the sheet. If you know the extent of your spreadsheet,
you can change "Cells" to "Range("A1:Z10000") or something to speed it up.

Sub MarkBold()

For Each c In Cells
If c.Font.Bold = True Then c.Value = c.Value & "*"
Next c

End Sub

...alternatively - if you also want to de-boldify as per your example text, use:

Sub MarkBold()

For Each c In Cells
If c.Font.Bold = True Then
c.Value = c.Value & "*"
c.Font.Bold = False
End If

Next c

End Sub

Как понимаю, это (в части детектирования - болд или не болд в ячейке) то, что надо? (вообще-то, как говорил Маргадон: "Я так и думал, господа!" :) )

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 50
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 10.04.12 09:58. Заголовок: Спасибо, но при комп..


Спасибо, но при компиляции xHarbour консоль - вылетают ошибки:
Syntax error: "syntax error at '='" на строку If c.Font.Bold = .T.
фрагмент кода

oAs :Cells(Ni+0,1):Select()
For Each c In Cells
If c.Font.Bold = .T.
c.Value = c.Value & "*"
c.Font.Bold = .F.
Endif
Next c


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 759
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 10.04.12 09:59. Заголовок: А если просто написа..


А если просто написать "If c.Font.Bold"?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1086
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.04.12 10:12. Заголовок: PSP пишет: А если п..


PSP пишет:

 цитата:
А если просто написать "If c.Font.Bold"?



?
Это ведь Harbour - не Basic

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 51
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 10.04.12 11:07. Заголовок: Так (?c.Font.Bold) т..


Так (?c.Font.Bold) тоже пробовал - ошибка Error E0030 Syntax error: "syntax error at ')'"

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 52
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 10.04.12 11:27. Заголовок: Нашел решение: oShee..


Нашел решение: oSheet:Cells(Ni,1):Font:Bold Возвращает в xHarbour значение Font:Bold

If oSheet:Cells(Ni,1):Font:Bold==.T.
wait 'Bold .T.'
Endif


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 42 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 49
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет