| Автор | Сообщение |
|
|
| |
Пост N: 2372
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.05.12 16:52. Заголовок: Снова EXCEL (продолжение)
Ранее с Excel из Harbour ни когда не работал. Поставили тут задачу. У некоторых поставщиков есть определенные формы заказов. Набраны они в Excel. Сейчас народ руками заполняет эти формы и шлет по электронке поставщикам. Задача сводится к тому что бы в этих формах находить нужные коды товара и в нужной ячейке проставлять заказ. Может ткнет кто носом с чего начать что бы не напороться на грабли. Спасибо Сами формы тут http://zalil.ru/33279066
|
 |

|
|
Ответов - 90
, стр:
1
2
3
4
5
All
[только новые]
|
|
|
|
| |
Пост N: 7673
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.07.22 21:24. Заголовок: Что то не могу найти..
Что то не могу найти на форуме , что бы преобразовывать RC формат к ABCD и тд То есть имею точные координаты строка и колонка (числа) , нужно преобразовать к формату не RC Ткните носом плиз PS Имею цифры в колонках 1 2 и 3 и в 4 нужно подбить сумму , как это сделать имея лишь номера колонок и столбцов через СУММ ?
|
 |

|
|
|
| постоянный участник
|
Пост N: 4142
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.07.22 22:57. Заголовок: Dima пишет То есть и..
|
 |

|
|
|
| |
Пост N: 7674
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.07.22 08:18. Заголовок: SergKis Спасибо :s..
SergKis Спасибо 
|
 |

|
|
|
| Администратор
|
Пост N: 4081
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.09.22 09:03. Заголовок: Имеется числовая кол..
Имеется числовая колонка, в ячейках которой может стоять разный формат, например 00000001 или 0000000001 если выбирать oCell:Value, то результат будет одинаковый: 1.00 Можно ли выбрать символьное преставление ячейки, или надо самому выбирать oCell:NumberFormat и дальше его анализировать и самому преобразовывать ?
|
 |

|
|
|
| Администратор
|
Пост N: 4082
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.09.22 09:37. Заголовок: ага, есть еще свойст..
ага, есть еще свойство Text, там как раз то, что нужно Жаль, нельзя выбрать Text для Range, как Value, а там надо выбирать тысячи строк, будет мееедленноооо
|
 |

|
|
|
| |
Пост N: 7686
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.09.22 11:27. Заголовок: Range......:NumberFo..
Range......:NumberFormat:="@" не то ?
|
 |

|
|
|
| Администратор
|
Пост N: 4083
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.09.22 12:13. Заголовок: Там в столбце 8700 я..
Там в столбце 8700 ячеек, с разными комбинациями NumberFormat есть 00000000 есть 0000000000 и еще много чего есть и строковые. Это грубо говоря код предприятия для налогового отчета. Там и физлица, и юрлица, и паспортные данные встречаются, это будут строки, а не числа Да я уже опрашиваю свойство Text, по скорости намного медленнее будет, но переживут, по другому никак. Ни NumberFormat, ни Text для Range не возвращает массив как Value
|
 |

|
|
|
| постоянный участник
|
Пост N: 4149
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.09.22 12:29. Заголовок: Pasha пишет по друго..
Pasha пишет " "+"000000000" // т.е. непрерывный пробел добавляем или "000000000"+" " PS можно repl(" ", 10)+<значение строковое> <значение строковое 1>+repl(" ", 10)+<значение строковое 2>
|
 |

|
|
|
| Администратор
|
Пост N: 4084
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.09.22 12:57. Заголовок: У меня противоположн..
У меня противоположная задача, не сформировать таблицу в Excel, а выбрать данные из сформированной сторонним ПО, или просто заполненной. А там формат ячеек может быть каким угодно
|
 |

|
|
|
| постоянный участник
|
Пост N: 4150
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.09.22 13:50. Заголовок: Можно формировать xm..
Можно формировать xml файл из excel (делает быстро) и читать его, то же быстро и форматы данных от базы, т.е. свои
|
 |

|
|
|
| Администратор
|
Пост N: 4085
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.10.22 10:47. Заголовок: Передаю объект TBrow..
Передаю объект TBrowse в Excel, имеется колонка типа дата Делаю: oCell:Value := d или oRange:Value := {...} где в массиве ячейки этого столбца имеют тип Date NumberFormat не устанавливаю В это случае Excel сам ставит формат ячейки Дата, и правильно передает и отображает значение Но у одного заказчика после недавно переустановленного Excel 2010 формат ячейки остается Общий, и значение отображается неправильно - там целое число Может в Excel есть какая-то настройка, чтобы он устанавливал формат ? С наверное сотнями пользователей с разными версиями Excel от 2003 до 2019 за десятки лет такой проблемы не было, с одним возникло Может дело в региональных стандартах ? Смотрю в Excel Параметры - Дополнительно - Использовать системные разделители - Галочка стоит. Непонятно
|
 |

|
|
|
|
|
| |
Пост N: 1852
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.10.22 11:29. Заголовок: Проверьте что устано..
Проверьте что установлено в стилях ячеек у этого пользователя. Вкладка главная -> стили -> стили ячеек-> обычный-> правый клик-> изменить. Ps Однозначно решает вопрос предварительная установка numberformat в ячейки. Для себя отказался от заполнения через ole, гоню выгрузку сначала в XML, а через ole дорисовываю красоту. Продукты микрософт очень любят подсунуть нежданчик на ровном месте.
|
 |

|
|
|
| Администратор
|
Пост N: 4086
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.10.22 13:08. Заголовок: мозги сломал, когда ..
мозги сломал, когда искал, почему oSheet:Columns(nCol):NumberFormat := "m/d/yyyy" не работает, хотя запись макросов дает такой именно это. надо так: oSheet:Columns(nCol):NumberFormat := "ДД.ММ.ГГГГ"
|
 |

|
|
|
| |
Пост N: 7709
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.10.22 13:28. Заголовок: Pasha пишет: oSheet..
Pasha пишет: | цитата: | | oSheet:Columns(nCol):NumberFormat := "m/d/yyyy" |
| а я забил на фиг на такой формат и пишу так oSheet:Columns(nCol):NumberFormat :="@" oSheet:Cells( j, a ):Value:=" "+hb_dtoc(i,"DD.MM.YYYY")
|
 |

|
|
|
| |
Пост N: 7764
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.06.23 17:51. Заголовок: Порча какая с Excel ..
Порча какая то с Excel Было oSheet:Range(osheet:cells(j,1),osheet:cells(j,4)):NumberFormat:={"@","@", "# ##0.00","# ##0.00"} Работает Решил отрицательные числа сделать красным и не пашет , падает Excel oSheet:Range(osheet:cells(j,1),osheet:cells(j,4)):NumberFormat:={"@","@", "# ##0.00;[Red]# ##0.00","# ##0.00;[Red]# ##0.00"} Как решить вопрос ?
|
 |

|
|
|
| постоянный участник
|
Пост N: 7406
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.06.23 03:53. Заголовок: Я в 2015 году делал ..
Я в 2015 году делал вот так. // создаём окно ожидания с потоком WaitThreadCreate( 'Расчёт и вызов Excel ...' ) // Область с заполненными данными oRange := oExcel:ActiveCell:SpecialCells( 11 /*xlLastCell*/ ) nRowXls := oRange:Row // Последняя строка nColXls := oRange:Column // Последний столбец oSheet:Columns( 1 ):Autofit() oSheet:Cells[ 1, nRowXls + 1 ]:HorizontalAlignment := 4 // Выравнивание по правому краю ячейки oSheet:Cells[ 1, nRowXls + 1 ]:Font:ColorIndex := 3 // Шрифт красный oSheet:Cells[ 1, nRowXls + 1 ] := 'Итого сумма с минусом' oSheet:Cells[ 1, nRowXls + 2 ]:HorizontalAlignment := 4 oSheet:Cells[ 1, nRowXls + 2 ]:Font:ColorIndex := 5 // Шрифт синий oSheet:Cells[ 1, nRowXls + 2 ] := 'Итого сумма с плюсом' oSheet:Cells[ 1, nRowXls + 3 ]:HorizontalAlignment := 4 oSheet:Cells[ 1, nRowXls + 3 ] := 'Итого сумма' FOR nCol := 2 TO nColXls xValue := oSheet:Cells( 1, nCol ):Value IF 'OSTAT' $ xValue .OR. 'DOLG' $ xValue oSheet:Cells[ nCol, nRowXls + 1 ] := '=СУММЕСЛИ( R[-' + AllTrim( Str( nRowXls-1, 8) ) + ']C:R[-1]C; "<0" )' oSheet:Cells[ nCol, nRowXls + 1 ]:NumberFormat := '# ##0,00' oSheet:Cells[ nCol, nRowXls + 1 ]:Font:ColorIndex := 3 // Шрифт красный oSheet:Cells[ nCol, nRowXls + 2 ] := '=СУММЕСЛИ( R[-' + AllTrim( Str( nRowXls, 8) ) + ']C:R[-2]C; ">0" )' oSheet:Cells[ nCol, nRowXls + 2 ]:NumberFormat := '# ##0,00' oSheet:Cells[ nCol, nRowXls + 2 ]:Font:ColorIndex := 5 // Шрифт синий oSheet:Cells[ nCol, nRowXls + 3 ] := '=СУММ( R[-' + AllTrim( Str( nRowXls+1, 8) ) + ']C:R[-3]C)' oSheet:Cells[ nCol, nRowXls + 3 ]:NumberFormat := '# ##0,00' ENDIF IF 'DATE' $ xValue oSheet:Columns( nCol ):Autofit() ENDIF NEXT oSheet:Cells[ 2, nRowXls + 4 ]:Select() oExcel:Visible := .T. WaitThreadClose() // закрыть окно "ожидания" hWnd := oExcel:hWnd ShowWindow( hWnd, 3 ) //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6 BringWindowToTop( hWnd )
|
 |

|
|
|
| |
Пост N: 7765
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.06.23 14:25. Заголовок: Andrey Это понятно ..
Andrey Это понятно что и так можно сделать , так и сделал. Не понятно почему Excel выдав в своем же макросе NumberFormat "# ##0.00;[Red]# ##0.00" , отказывается с ним работать через олю в Harbour
|
 |

|
|
|
| постоянный участник
|
Пост N: 1645
Зарегистрирован: 27.01.07
|
|
Отправлено: 09.06.23 14:50. Заголовок: Вот тут https://supp..
Вот тут https://support.microsoft.com/en-us/office/number-format-codes-5026bbd6-04bc-48cd-bf33-80f18b4eae68 говорят, что надо как-то так: | цитата: | To indicate that a number format will be applied only if the number meets a condition that you have specified, enclose the condition in square brackets. The condition consists of a comparison operator and a value. For example, the following number format will display numbers that are less than or equal to 100 in a red font and numbers that are greater than 100 in a blue font. [Red][<=100];[Blue][>100] |
|
|
 |

|
|
|
| |
Пост N: 7766
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.06.23 15:50. Заголовок: PSP Спасибо , побед..
PSP Спасибо , победить не смог На удачу сделал так "# ##0.00;[Красный]# ##0.00" Блин , заработало Но так делать стрёмно , если у кого English Excel стоит. PS По идее в Excel должна быть переключалка языка для макросов , вот только где она живет.......надо поискать
|
 |

|
|
|
| |
Пост N: 7810
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.09.23 14:49. Заголовок: Есть строка в таблиц..
Есть строка в таблице с группировкой , то есть слева от нее крестик , при нажатии на который раскроется еще скажем 20 строк. Группировка в строке делалась примерно так oSheet:Range(.........):Select() WITH OBJECT oExcel:Selection :Rows:Group() ENDWITH Задача вот всю эту строку с группировкой надо бы переместить скажем после 3 строки таблицы Excel Не пойму как это сделать. Кто то делал похожее ?
|
 |

|
|
|
| Администратор
|
Пост N: 4118
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.09.23 09:59. Заголовок: Создаю книгу, заполн..
Создаю книгу, заполняю строки данными Беру oSheet:HPageBreaks:Count. получаю 4 разделителя страниц Визуально в книге их четыре и есть Затем в цикле их перебираю. От одного до трех все в порядке, получаю адрес и номер строки разделителя А на последний: oSheet:HPageBreaks(4) получаю ошибку: MEMBERNOTFOUND В чем ошибка ? Как получить последний разделитель ?
|
 |

|
|
|
|
|
| постоянный участник
|
Пост N: 4405
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.09.23 12:09. Заголовок: Pasha Может от 0-3 ..
Pasha Может от 0-3 ?
|
 |

|
|
|
| Администратор
|
Пост N: 4119
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.09.23 12:10. Заголовок: Глюк становится еще ..
Глюк становится еще непонятнее Копаю дальше. Оказывается, неважно сколько получается HPageBreaks, Excel дает только первые три, а с четвертого - ошибка Пересохранил книгу из формата xls в xlsx. Теперь Excel дает только первые два разделителя страниц, а с третьего и дальше - ошибка
|
 |

|
|
|
| Администратор
|
Пост N: 4120
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.09.23 12:12. Заголовок: Может от 0-3 ? Нет,..
Нет, пробовал и так, нумерация всех коллекций в Excel идет с единицы
|
 |

|
|
|
| Администратор
|
Пост N: 4121
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.09.23 12:58. Заголовок: Сбросил пример на фа..
|
 |

|
|
|
| |
Пост N: 7817
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.09.23 14:21. Заголовок: Pasha пишет: Копаю ..
Pasha пишет: | цитата: | Копаю дальше. Оказывается, неважно сколько получается HPageBreaks, Excel дает только первые три, а с четвертого - ошибка Пересохранил книгу из формата xls в xlsx. Теперь Excel дает только первые два разделителя страниц, а с третьего и дальше - ошибка |
| у меня на 45-м упало Excel 2010
|
 |

|
|
|
| Администратор
|
Пост N: 4122
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.09.23 14:46. Заголовок: Там всего 7 разделит..
Там всего 7 разделителей страниц
|
 |

|
|
|
| |
Пост N: 7818
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.09.23 14:50. Заголовок: Pasha пишет: ам все..
Pasha пишет: | цитата: | | ам всего 7 разделителей страниц |
| 
|
 |

|
|
|
| |
Пост N: 7819
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.09.23 14:55. Заголовок: HPageBreaks Count 2..
HPageBreaks Count 211
|
 |

|
|
|
| Администратор
|
Пост N: 4123
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.09.23 15:37. Заголовок: Еще страньше. Я гоня..
Еще страньше. Я гонял на Excel 2016 и 2007. А предварительный просмотр сколько страниц дает ? Должно быть 8, как раз 7 разделителей
|
 |

|
|
|
| |
Пост N: 7820
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.09.23 15:57. Заголовок: Да 8..
Да 8
|
 |

|
|
|
|
|
| постоянный участник
|
Пост N: 4406
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.09.23 16:29. Заголовок: у меня вышло (excel ..
PS. Наверно, это не надо (убрал лишнее), смотрим только Sheet2 в примере поставил nCnt := 8 или 10 (строки может надо анализировать) все загрузилось
|
 |

|
|
|
| |
Пост N: 7821
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.09.23 17:06. Заголовок: https://i.postimg.cc..
|
 |

|
|
|
| постоянный участник
|
Пост N: 4407
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.09.23 17:18. Заголовок: Dima Спасибо. Навер..
Dima Спасибо. Наверно, я Пашу не понял, он про разделитель страниц, а я про Sheet (их тут три) А разве нельзя посчитать nCnt разделители от полученного кол-ва строк Sheet2, пробежав по ним ? Ведь полученное, у меня, HPageBreaks Count 218, явно врет
|
 |

|
|
|
| Администратор
|
Пост N: 4124
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.09.23 17:46. Заголовок: У меня там строки ра..
У меня там строки разной высоты, поэтому я и выбираю те разделители, которые Excel поставил. Есть еще и сквозные строки, заголовки на каждой странице. Надо поймать все разделители страниц, и на каждой странице внизу добавить строку - итоги по странице. А разделители собаки такие не работают.
|
 |

|
|
|
| постоянный участник
|
Пост N: 4408
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.09.23 18:01. Заголовок: Pasha пишет У меня т..
Pasha пишет | цитата: | | У меня там строки разной высоты, поэтому я и выбираю те разделители, которые Excel поставил. |
| Так я и предлагаю их посчитать, пробежав по всем строкам (получив сначала их кол-во, в LibXL от этого пляшу, Sheet->кол-во строк->...), тут не важно высоты строк. Запомнить номер строки перед символом (получить список) и потом в обратном порядке этого списка добавлять строки итоги на каждый лист Sheet2
|
 |

|
|
|
| Администратор
|
Пост N: 4125
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.09.23 18:18. Заголовок: Поскольку HPageBreak..
Поскольку HPageBreaks конкретно глючит, нашел другое решение: В цикле по строкам опрашивать: if oSheet2:Rows(nRow):PageBreak # xlNone значит в этой строке разделитель страницы Медленно будет конечно, но пока по другому не получается
|
 |

|
|
|
| |
Пост N: 7822
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.09.23 18:52. Заголовок: Паша лови решение oE..
Паша лови решение oExcel:ActiveWindow:View:= xlPageBreakPreview // 2 nCnt := oSheet2:HPageBreaks:Count() // 7 
|
 |

|
|
|
| |
Пост N: 7823
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.09.23 18:56. Заголовок: Результат ..
Результат 1 2 3 4 5 6 7 7: 38 70 102 136 170 202 234
|
 |

|
|
|
| Администратор
|
Пост N: 4126
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.09.23 18:57. Заголовок: Спасибо, заработало ..
Спасибо, заработало !
|
 |

|
|
|
| |
Пост N: 172
Зарегистрирован: 12.07.06
|
|
Отправлено: 21.10.23 13:01. Заголовок: Подскажите
Как сменить направление текста в ячейке?
|
 |

|
|
|
|
|
| |
Пост N: 7846
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.10.23 14:15. Заголовок: alex_II Если мы про..
alex_II Если мы про ориентацию то так например oSheet:cells(j,1):Orientation:=90
|
 |

|
|
|
| |
Пост N: 173
Зарегистрирован: 12.07.06
|
|
Отправлено: 22.10.23 05:58. Заголовок: Да, я это и имел в в..
Да, я это и имел в виду, спасибо
|
 |

|
|
|
| |
Пост N: 7930
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.01.24 19:06. Заголовок: как сделать полноэкр..
как сделать полноэкранный курсор (каким то цветом) в Excel ? ps я не про мышку
|
 |

|
|
|
| |
Пост N: 7931
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.01.24 19:55. Заголовок: Проехали поставил Fo..
Проехали поставил FollowCellPointer
|
 |

|
|
|
| |
Пост N: 7932
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.01.24 18:59. Заголовок: ComboBox кто нибудь ..
ComboBox кто нибудь делал в Excel средствами Harbour , можно примерчик ? 
|
 |

|
|
|
| постоянный участник
|
Пост N: 7689
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.02.24 23:20. Заголовок: Как в экселе сделать..
Как в экселе сделать замену ВСЕХ символов ";" на "|" ? И подсчёт кол-ва замены можно сделать ? В Ворде знаю как, а в экселе не делал.
|
 |

|
|
|
| |
Пост N: 92
Зарегистрирован: 18.06.15
|
|
Отправлено: 24.02.24 07:03. Заголовок: Андрей, привет .......
Андрей, привет ..... а у меня проблемы с вордом ... как в одной сроке установить разные символы ..? Вариант с поиском и заменой не подходит.
|
 |

|
|
|
| |
Пост N: 7937
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.02.24 17:06. Заголовок: Andrey гугли )) htt..
|
 |

|
|
|
| постоянный участник
|
Пост N: 7692
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.02.24 23:08. Заголовок: Не пойму как макрос ..
Не пойму как макрос Экселя переделать в Харборовский код ? oExcel := win_oleCreateObject( "Excel.Application" ) oExcel:Visible := .F. // .T. показать Excel на экране для отладки oExcel:DisplayAlerts := .F. // убрать предупреждения Excel oExcel:Workbooks:Open( cFile, 0 ) oBook := oExcel:ActiveWorkBook() oSheet := oExcel:ActiveSheet() oRange := oExcel:ActiveCell:SpecialCells( xlLastCell ) nXlsRecno := oRange:Row // количество строк таблицы Excel nXlsColumn := oRange:Column // количество колонок Excel - НЕ всегда РАБОТАЕТ НОРМАЛЬНО ! // если 1-я строка объединена, то не работает //nXlsColumn := oSheet:UsedRange:Columns:Count // количество колонок Excel - РАБОТАЕТ .... // макрос экселя Cells.Replace What:=";", Replacement:="|", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
|
 |

|
|
|
| Администратор
|
Пост N: 4149
Зарегистрирован: 23.05.05
|
|
Отправлено: 28.02.24 07:54. Заголовок: Объект Cells - это o..
Объект Cells - это oSheet:Cells Я тебе в телегу кидал описание метода Replace: expression.Replace(What, Replacement, LookAt, SearchOrder, MatchCase, MatchByte, SearchFormat, ReplaceFormat) expression Required. An expression that returns a Range object. Вместо ключевых параметров в макросе подставляешь позиционные для харбора
|
 |

|
|
|
| постоянный участник
|
Пост N: 7693
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.02.24 09:00. Заголовок: Pasha пишет: Вместо..
Pasha пишет: | цитата: | | Вместо ключевых параметров в макросе подставляешь позиционные для харбора |
| Не понимаю как это сделать....
|
 |

|
|
|
| Администратор
|
Пост N: 4150
Зарегистрирован: 23.05.05
|
|
Отправлено: 28.02.24 09:22. Заголовок: Внимательно читаем и..
Внимательно читаем инструкцию expression.Replace(... expression - это Cells, в макросе - Cells.Replace. Cells - это oSheet:Cells т.е. пишем: oSheet:Cells:Replace далее в инструции: expression.Replace(What, параметр What в макросе - это What:=";" т.е. пишем на харборе: oSheet:Cells:Replace(";", затем таким же макаром подставляем остальные параметры
|
 |

|
|
|
| постоянный участник
|
Пост N: 7694
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.02.24 11:49. Заголовок: Pasha пишет: oSheet..
Pasha пишет: | цитата: | oSheet:Cells:Replace(";", |
| Вот это и не знал как сделать ! Спасибо БОЛЬШОЕ ! Работает отлично ! oSheet:Cells:Replace(";","|",xlPart,xlByRows,.F.,.F.,.F.) Только кол-во замен нет. Хотя это и не особо важно...
|
 |

|
|
|
| постоянный участник
|
Пост N: 7696
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.03.24 08:45. Заголовок: Что-то совсем забыл ..
Что-то совсем забыл как работать с Экселем.... Нужно удалить целиком первую строку в экселе. Макрос такой: Rows("1:1").Select Selection.Delete Shift:=xlUp Как его переделать на Харбор ? Заранее БОЛЬШОЕ СПАСИБО за помощь.
|
 |

|
|
|
| Администратор
|
Пост N: 4151
Зарегистрирован: 23.05.05
|
|
Отправлено: 04.03.24 13:25. Заголовок: смотрим пример из mi..
смотрим пример из minigui: Tsb4csvOle.prg /* * MINIGUI - Harbour Win32 GUI library Demo * * Copyright 2018 Verchenko Andrey <verchenkoag@gmail.com> Dmitrov, Moscow region */ там в самом конце есть цикл с удалением строки: FOR nI := LEN(aLineDel) TO 1 STEP -1 nLine := aLineDel[nI] oSheet:Cells( nLine, 1 ):Value := nI oExcel:Rows(nLine):Delete() NEXT
|
 |

|
|
|
| постоянный участник
|
Пост N: 7699
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.03.24 16:10. Заголовок: Pasha СПАСИБО БОЛЬШО..
Pasha СПАСИБО БОЛЬШОЕ ! Памяти уже совсем нет... 
|
 |

|
|
|
| |
Пост N: 185
Зарегистрирован: 12.07.06
|
|
Отправлено: 05.08.24 14:42. Заголовок: Подскажите...
Как заполнить програмно ячейку, значение которой выбирается из выпадающего списка?
|
 |

|
|
|
| |
Пост N: 7950
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.08.24 09:26. Заголовок: alex_II Макрос что ..
alex_II Макрос что нибудь полезное показывает ?
|
 |

|
|
|
| |
Пост N: 186
Зарегистрирован: 12.07.06
|
|
Отправлено: 06.08.24 10:43. Заголовок: Я ничего кроме автос..
Я ничего кроме автосуммы никогда не использовал 
|
 |

|
|
|
| |
Пост N: 7978
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.10.24 15:05. Заголовок: Какой формат ячейки ..
Какой формат ячейки или функцию какую нужно использовать для отображения штрих кода ? Пока добавляю в самом начале какой то символ что бы Excel не смог сделать ни каких преобразований. Например нужно отобразить вот такой штрих 4820015713872
|
 |

|
|
|
| постоянный участник
|
Пост N: 7889
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.10.24 15:24. Заголовок: А разве Эксель может..
А разве Эксель может делать в ячейке штрих-код ? Наверное нужно делать картинку и потом прикреплять её в ячейку. Штрих-коды, включая Qr-код есть в МиниГуи
|
 |

|
|
|
| |
Пост N: 7979
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.10.24 15:37. Заголовок: Andrey ты не понял ..
Andrey ты не понял нужно просто в ячейке написать 4820015713872 и все и что бы так и осталось , но Excel начинает что то придумывать и в итоге это число со степенью отображается
|
 |

|
|
|
| постоянный участник
|
Пост N: 7890
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.10.24 16:22. Заголовок: Подчеркивание поставь впереди
Поставь знак "_" впереди
|
 |

|
|
|
| |
Пост N: 7980
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.10.24 17:15. Заголовок: Andrey пишет: Поста..
Andrey пишет: Dima пишет: | цитата: | | Пока добавляю в самом начале какой то символ |
| кароче вот
|
 |

|
|
|
| постоянный участник
|
Пост N: 4647
Зарегистрирован: 17.02.12
|
|
Отправлено: 07.10.24 18:39. Заголовок: Dima пишет Пока доба..
Dima пишет | цитата: | | Пока добавляю в самом начале какой то символ |
| попробуй "не прерывный пробел" ' ', в xml excel отлично понимает, что до, что после нужного текста, держит длину в пробелах
|
 |

|
|
|
| Администратор
|
Пост N: 4188
Зарегистрирован: 23.05.05
|
|
Отправлено: 07.10.24 18:47. Заголовок: Дима, поставь формат..
Дима, поставь формат ячейки текстовый. Excel воспринимает значение как число, в целый оно не помещается, он преобразует в double, и так и показывает. А так будет строка
|
 |

|
|
|
| |
Пост N: 7981
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.10.24 20:26. Заголовок: Pasha пишет: Дима, ..
Pasha пишет: | цитата: | | Дима, поставь формат ячейки текстовый |
| Конечно я пробовал , не работает. Сделал пока как советует выше M$ , перед таким текстом поставить ' , работает
|
 |

|
|
|
| |
Пост N: 357
Зарегистрирован: 05.10.06
|
|
Отправлено: 10.10.24 14:50. Заголовок: Dima пишет: Конечно..
Dima пишет: | цитата: | | Конечно я пробовал , не работает. |
| Если формат ячейки установлен текстовый и через VBA вставляешь текст, то и отображает как текст без преобразований А если формат общий, а вставляешь текст, то он приводит значение к числу со степенью и изменение формата после вставки не работает.
|
 |

|
|
|
| |
Пост N: 7982
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.10.24 17:58. Заголовок: MIKHAIL Так уже раз..
MIKHAIL Так уже разобрались Сохранение начальных нулей и больших чисел И в конце советуют Перед числом можно ввести апостроф ('), и Excel будет обрабатывать его как текст. , в этом случае самого апострофа не видно в ячейке MIKHAIL пишет: | цитата: | | Если формат ячейки установлен текстовый и через VBA вставляешь текст, то и отображает как текст без преобразований |
| Насчёт NumberFormat:="@" , мысль понял Что то я прозевал этот момент....
|
 |

|
|
|
| |
Пост N: 7994
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.11.24 20:03. Заголовок: Добавил примечание к..
Добавил примечание к ячейке через AddComment() и заполнил его Шрифт примечания Consolas Текст внутри примечания это таблица рисованная с помощью псевдографики и всё как бы идеально , но есть небольшие но видимые разрывы псевдографики между строк. Каким образом уменьшить межстрочный интервал , программно.
|
 |

|
|
|
| |
Пост N: 165
Зарегистрирован: 09.09.11
|
|
Отправлено: 05.12.24 13:30. Заголовок: Всех с наступающим Н..
Всех с наступающим Новым Годом! Здоровья и благополучия!!! Нужно при открытии файла проверить на: 1- наличие пароля на книгу 2- наличие пароля на лист и снять пароли (пароли занесем в справочник) и как пароль передать в момент открытия файла Excel oExcel :Workbooks:Open(FileInput) необходимость снятия пароля обусловлена тем что, функция oRange :=oExcel:ActiveCell:SpecialCells(xlLastCell) cRecno :=oRange:Row cColumn :=oRange:Column не возвращает значения количество строк и количество столбцов на листе а нам нужны эти значения... Или есть функция, которая возвращает количество строк /столбцов/ на закрытом паролем листе /книге/?
|
 |

|
|
|
| |
Пост N: 8010
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.24 14:00. Заголовок: Oskar_AAA пишет: oE..
Oskar_AAA пишет: | цитата: | | oExcel :Workbooks:Open(FileInput) |
| Попробуй так Workbooks:Unprotect:="твой пасс" ну или так Osheet:Unprotect:="твой пасс"
|
 |

|
|
|
| |
Пост N: 166
Зарегистрирован: 09.09.11
|
|
Отправлено: 05.12.24 16:44. Заголовок: При коде: oExcel ..
При коде: oExcel :Workbooks:Open(FileInput) oExcel :Workbooks:Unprotect:="111" Ошибка: |Error Excel.Application:WORKBOOKS/14 DISP_E_BADPARAMCOUNT: _UNPROTECT Arguments| |: ( [ 1] = Type: C Val: 111)
|
 |

|
|
|
| |
Пост N: 167
Зарегистрирован: 09.09.11
|
|
Отправлено: 05.12.24 16:52. Заголовок: При коде: cSheets..
При коде: cSheets :=oExcel:WorkSheets:Count oSheet :=oBook :Sheets(cSheets-1) oBook :=oExcel:ActiveWorkBook oAs :=oExcel:ActiveSheet() oSheet :=oBook :Sheets(cSheets-1):Select() oSheet :=oBook :Sheets(cSheets-1) oSheet :=Unprotect:="111" oRange :=oExcel:ActiveCell:SpecialCells(xlLastCell) тут ошибка: |Error Excel.Application:ACTIVECELL/0 S_OK: SPECIALCELLS Arguments: ( [ 1] = Type: N Val: 11)
|
 |

|
|
|
| |
Пост N: 168
Зарегистрирован: 09.09.11
|
|
Отправлено: 05.12.24 19:09. Заголовок: пост 1762 от Andrey ..
пост 1762 от Andrey было oSheet:UsedRange:Columns:Count // количество столбцов сделал у себя аналогично: cRecno :=oSheet:UsedRange:Rows:Count cColumn:=oSheet:UsedRange:Columns:Count возвращает количество строк и столбцов на листе не зависимо от наличия пароля на листе.... то что нам нужно вместо oRange :=oExcel:ActiveCell:SpecialCells(xlLastCell)
|
 |

|
|
|
| |
Пост N: 8011
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.12.24 20:08. Заголовок: Oskar_AAA А так ? o..
Oskar_AAA А так ? oAS := oExcel:ActiveSheet() oAs:UnProtect( "password" )
|
 |

|
|
|
| |
Пост N: 169
Зарегистрирован: 09.09.11
|
|
Отправлено: 08.12.24 18:03. Заголовок: Спасибо, на днях поп..
Спасибо, на днях попробуем ...
|
 |

|
|
|
| |
Пост N: 170
Зарегистрирован: 09.09.11
|
|
Отправлено: 24.03.25 09:20. Заголовок: Добрый день, требует..
Добрый день, требуется создать XML файл по заданной структуре. Данные мы формируем из БД с последующей записью в XLSX файл, меняем имена столбцов как требуется в XML.... Что и как дальше делать (желательно все преобразования провести в программе, консольный xHarbour)? Не хотелось бы нагружать Пользователя в премудрости конвертации в диалоговом режиме Excel. или есть конвертор, который по заданной схеме преобразует XLS(x) в XML?
|
 |

|
|
|
| |
Пост N: 8077
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.03.25 13:55. Заголовок: Oskar_AAA Если есть..
Oskar_AAA Если есть структура XML , не вижу проблем сделать на уровне Harbour , нужное преобразование из XLS XML это текст (расширяемый язык разметки)
|
 |

|
|
|
| |
Пост N: 171
Зарегистрирован: 09.09.11
|
|
Отправлено: 24.03.25 14:27. Заголовок: Dima структура XML ф..
Dima структура XML файла Формирование XML файла 1. При формировании файла все теги должны иметь открывающий и закрывающий тег <Products></Products> 2. В случае необязательных полей, тег можно удалить либо оставить пустым <WriteOffReasonCode></WriteOffReasonCode> 3. Поля необходимо заполнить согласно следующему порядку. • FacilityId • WriteOffReasonCode • Comment • AccountingSystemId o ProductId o UnitCode o Amount o Price MarkCode
|
 |

|
|
|
| постоянный участник
|
Пост N: 4701
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.03.25 14:50. Заголовок: Oskar_AAA Поищите н..
Oskar_AAA Поищите на форуме "xml по схеме" может что найдете для себя
|
 |

|
|
|
| |
Пост N: 8079
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.03.25 15:03. Заголовок: Oskar_AAA Должно бы..
|
 |

|
|
|
| |
Пост N: 172
Зарегистрирован: 09.09.11
|
|
Отправлено: 24.03.25 17:12. Заголовок: копия описания из MS..
копия описания из MS Word Электронный формат документа ЭТТН по списанию I. ОБЩИЕ СВЕДЕНИЯ Настоящий документ описывает структуру XML файла (далее - файлам обмена) передачи сведений документа ЭТНН по списанию II. ОПИСАНИЕ ФАЙЛА ВЫГРУЗКИ Таблица 1 Элемент XML (Writeoff) Наименование элемента Сокращенное наименование (код) элемента Значение Версия файла FileVer Последняя версия элемента Тип файла InfoType Значение документа - Writeoff Документы ЭТТН оприходования Writeoffs Состав элемента представлен в табл. 2. Таблица 2 Элемент XML (Writeoff) Наименование элемента Сокращенное наименование (код) элемента Дополнительная информация Склад списания FacilityId GUID склада списания Код вида поставки DeliveryTypeCode Код из справочника “Виды поставок” Причина списания WriteOffReasonCode Код из справочника “Причина списания” Комментарий Comment Статус Status Числовое значение статуса Статус StatusText Текстовое значение статуса Номер документа в учетной системе AccountingSystemId GUID учетной системы Дата создания Created Дата подтверждения ConfirmDate Отображается, если статус “Подтвержден” Номер документа DocumentNumber Товары Products Состав элемента представлен в табл. 3 Таблица 3 Сведения о товарах для оприходования (WriteoffProduct) Наименование элемента Сокращенное наименование (код) элемента Дополнительная информация Идентификатор товара ProductId Код единицы измерения товара UnitCode Код из справочника “Единиц измерения” Количество товара Amount Цена товара Price Коды маркировки MarkCodes Список кодов маркировок Таблица 4 Сведения о кодах маркировки (MarkCodes) Наименование элемента Сокращенное наименование (код) элемента Дополнительная информация Код маркировки MarkCode Код маркировки
|
 |

|
|
|
| |
Пост N: 8080
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.03.25 18:17. Заголовок: сомневаюсь что можно..
сомневаюсь что можно сделать XML из такого скудного описания формата 
|
 |

|
|
|
| |
Пост N: 724
Зарегистрирован: 08.07.06
|
|
Отправлено: 24.03.25 18:24. Заголовок: Судя по всему, перед..
Судя по всему, перед Oskar_AAA, стоит задача по формированию ЭДО из учетной системы. Предлагаю обсудить совместно в отдельной теме, тк задача актуальная и для меня тоже, да и к MS Excel имеет мало отношения, нужен чистый XML.
|
 |

|
|
|
| |
Пост N: 8081
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.03.25 18:26. Заголовок: Sergy Я так понимаю..
Sergy Я так понимаю должно быть нормальное описание структуры XML , каким оно примерно должно быть , я выложил выше ссылочку на доку из Пан Агента. Там все ясно и понятно и делал стыковку с этой прогой юзая ихнее руководство. Sergy пишет: | цитата: | | Предлагаю обсудить совместно в отдельной теме, тк задача актуальная и для меня тоже, да и к MS Excel имеет мало отношения, нужен чистый XML. |
| Заводи раз надо
|
 |

|
|
|
| |
Пост N: 8083
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.03.25 12:36. Заголовок: Всем привет. Хотел р..
Всем привет. Хотел разобраться с рядом контролов , но что то лыжи не едут. Может кто юзал и подскажет. Все вопросы в коментах сырца #include "excel.ch" #translate CRLF => hb_OsNewLine() #define RGB( nR,nG,nB ) ( nR + ( nG * 256 ) + ( nB * 256 * 256 ) ) Local oExcel Local oSheet, oRange local btn local lb local macros:="" local cb REQUEST HB_CODEPAGE_RU1251 hb_cdpSelect( "RU1251" ) oExcel := win_OleCreateObject( "Excel.Application" ) oExcel:WorkBooks:Add() oSheet := oExcel:ActiveSheet oExcel:Visible := .t. oRange := oSheet:Range(oSheet:Cells(1,1), oSheet:Cells(2,3)) btn:= oExcel:ActiveSheet:Buttons:Add(oRange:Left,oRange:Top,oRange:Width,oRange:Height) WITH OBJECT btn :Caption:= "Кнопочка" :Name:= "Btn" :OnAction:="Btns" ENDWITH macros:='Private Sub btns()'+CRLF+'MsgBox("Hello Word")'+CRLF+'End Sub' /* пробую зашить макрос , ни чего не выходит , что не так делаю ? oSheet:VBProject:VBComponents("Лист1"):CodeModule:InsertLines(1, macros) oExcel:VBProject:VBComponents:Item("ThisWorkbook"):CodeModule:AddFromString (macros) */ lb:=oExcel:ActiveSheet:ListBoxes:Add(40, 42.6, 159.6, 54) WITH OBJECT lb :Name:="Test" :AddItem("111111") :AddItem({"222222","3333333"}) ENDWITH /* Как добраться к Properties контрола LB Например цвет фона сменить BackColor ? */ cb:=oExcel:ActiveSheet:DropDowns:Add(100, 100, 150, 15) WITH OBJECT cb :Caption:="Test 2" :AddItem({"11133333","33333333333","Проверка","Колбаса","8888888888"}) // :DropDownLines:=3 // кол-во видимых пунктов при нажатии // :Enabled:=.f. // lock ENDWITH * тут нет вопросов
|
 |

|
|
|
| |
Пост N: 8084
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.03.25 14:40. Заголовок: Dima пишет: /* про..
Dima пишет: | цитата: | /* пробую зашить макрос , ни чего не выходит , что не так делаю ? oSheet:VBProject:VBComponents("Лист1"):CodeModule:InsertLines(1, macros) oExcel:VBProject:VBComponents:Item("ThisWorkbook"):CodeModule:AddFromString (macros) */ |
| Вот так работает :) owb:=oExcel:WorkBooks:Add() macros:='Private Sub btns()'+CRLF+'MsgBox("Hello Word")'+CRLF+'End Sub' hb_memowrit(hb_dirbase()+"test.bas",macros) owb:VBProject:VBComponents:import(hb_dirbase()+"test.bas") Правда в безопасности Excel надо включить Доверять доступ к объектной модели проектов VBA
|
 |

|
|
|
| |
Пост N: 8085
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.03.25 19:07. Заголовок: Dima пишет: Как доб..
Dima пишет: | цитата: | Как добраться к Properties контрола LB Например цвет фона сменить BackColor ? |
| Нет там такого , смотрел не ту доку 
|
 |

|
|
Ответов - 90
, стр:
1
2
3
4
5
All
[только новые]
|
|