Автор | Сообщение |
|
| |
Пост 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. Или нужно дать команду на переключение нотации?
|
|
|
Ответов - 42
, стр:
1
2
3
All
[только новые]
|
|
|
| |
Пост N: 250
Зарегистрирован: 08.04.06
|
|
Отправлено: 05.07.08 16:31. Заголовок: Pasha пишет: Речь и..
Pasha пишет: цитата: | Речь идет о длинных ключах или ключах переменной длины ? Если о длинных, то думаю, индек будет работать. |
| Провёл эксперимент - длинные индексные ключи CDXов в xHarbour работают!
|
|
|
|
| |
Пост 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)
|
|
|
|
| |
Пост N: 63
Зарегистрирован: 05.11.05
|
|
Отправлено: 26.05.10 16:41. Заголовок: А как выделить рамку..
А как выделить рамку на нужный диапазон? Так, например, я поставлю рамку на одну клетку: oSheet:Cells(7,1):BorderAround:=1 А если нужно выделить "D5,D7"?
|
|
|
|
| Администратор
|
Пост 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))
|
|
|
|
| |
Пост 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
|
|
|
|
| Администратор
|
Пост N: 2174
Зарегистрирован: 23.05.05
|
|
Отправлено: 29.11.11 10:54. Заголовок: Oskar_AAA пишет: До..
Oskar_AAA пишет: Запускаете Excel Сервис - Макросы - Начать запись Выполняете необходимые действия, останавливаете запись, изучаете полученный макрос. Повторяете полученный материал в харборе.
|
|
|
|
| постоянный участник
|
Пост 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
|
|
|
|
| |
Пост 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
|
|
|
|
| |
Пост 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") Не открывается. Т.е. сам файл открывается, но не на том листе. Что я делаю не так?
|
|
|
|
| Администратор
|
Пост 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
|
|
|
|
| |
Пост N: 72
Зарегистрирован: 05.11.05
|
|
Отправлено: 21.03.12 11:49. Заголовок: Спасибо! Заработало...
Спасибо! Заработало. Еще вопрос возник: а как комментарии к ячейке записывать?
|
|
|
|
|
| Администратор
|
Пост N: 2316
Зарегистрирован: 23.05.05
|
|
Отправлено: 21.03.12 16:19. Заголовок: rvu пишет: Еще вопр..
rvu пишет: цитата: | Еще вопрос возник: а как комментарии к ячейке записывать? |
| У меня ms office не установлен, поэтому смотрю по хелпу. Судя по всему, надо для объекта Range выполнить действия: oRange:AddComment() oRange:Comment:Text := "Text" А лучше включите запись макросов, сами добавьте комментарий, и посмотрите, как это делается
|
|
|
|
| |
Пост N: 73
Зарегистрирован: 05.11.05
|
|
Отправлено: 22.03.12 10:50. Заголовок: Работает. Спасибо!..
Работает. Спасибо!
|
|
|
|
| |
Пост N: 49
Зарегистрирован: 09.09.11
|
|
Отправлено: 10.04.12 07:22. Заголовок: Добрый день, возник ..
Добрый день, возник вопрос : Как определить свойство Font:Bold ячеки ? (oAs:Rows(Ni,1):Font:Bold=.t.) т.е мне нужно обрабатывать только строки с выделенным шрифтом или если Font:Bold=.T. Есть ли какая то функция?
|
|
|
|
| постоянный участник
|
Пост 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 Как понимаю, это (в части детектирования - болд или не болд в ячейке) то, что надо? (вообще-то, как говорил Маргадон: "Я так и думал, господа!" :) )
|
|
|
|
| |
Пост 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
|
|
|
|
| постоянный участник
|
Пост N: 759
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.04.12 09:59. Заголовок: А если просто написа..
А если просто написать "If c.Font.Bold"?
|
|
|
|
| постоянный участник
|
Пост N: 1086
Зарегистрирован: 09.10.06
|
|
Отправлено: 10.04.12 10:12. Заголовок: PSP пишет: А если п..
PSP пишет: цитата: | А если просто написать "If c.Font.Bold"? |
| ? Это ведь Harbour - не Basic
|
|
|
|
| |
Пост N: 51
Зарегистрирован: 09.09.11
|
|
Отправлено: 10.04.12 11:07. Заголовок: Так (?c.Font.Bold) т..
Так (?c.Font.Bold) тоже пробовал - ошибка Error E0030 Syntax error: "syntax error at ')'"
|
|
|
|
| |
Пост 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
|
|
|
Ответов - 42
, стр:
1
2
3
All
[только новые]
|
|