powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / По Excel помогите чуть-чуть
20 сообщений из 20, страница 1 из 1
По Excel помогите чуть-чуть
    #34346075
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, люди.
Вопросы такие:
1) как в Excel на листе выделить непустой диапазон? Или хотя бы как найти первую пустую ячейку в колонке, чтоб считывать только непустые строки, заведенные пользователем?
2) раздобыл метод Find объекта Range. Но он не ищет пустую ячейку. На "" ругается о несовпадении типов. И еще. Каково значение параметра lookin, чтобы искал значения?
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34346141
VSchelk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Excel есть такие команды: СЧИТАТЬПУСТОТЫ(...), БСЧЁТА(...)-подсчитывает все непустые,ДЛСТР(...)возвращает кол-во знаков
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34346220
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это очень хорошо. Но мне нужны команды, которые из фокса вызывать, а не формулы Excel.
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34346573
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятна задача, но по первому вопросу почитай хелп по VBA о SpecialCells
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34346785
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача загрузить данные в уч.систему из др.системы через файл dbf.
В Excel файл юзеры забивают соответствия занений справочников внеш.системы уч.системе. И вот надо взятое значение спр-ка вн.с-мы найти на листе и взять соот-е значение уч.с-мы.
В принципе, если расскажете, как работает loExcel.ActiveSheet.Range("A:A").Find, то этого будет наверно достаточно.
Я щас выкрутился переносом данных с листов в таблицы, но хотелось бы как-то по-нативнее сделать.
А SpecialCells - это ваще о чем?
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34347055
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loExcel.ActiveSheet.Columns(1).Find("ЧтоИщем")
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34348970
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если уж на то пошло, то метод Find есть только у Range и у Worksheet.
Интересуют именно его параметры. А еще вернее - первый. Выражение для поиска. Если я пишу
loExcel.ActiveSheet.Range("A:A").Find("","A1",-4163), то он ругается на несовпадение типов, и именно на первый параметр. Как мне найти первую пустую ячейку то?
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34349196
Ffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перейди в форум по Office и задай вопрос там. Он не по FoxPro.
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34349294
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolmyrЕсли уж на то пошло, то метод Find есть только у Range и у Worksheet.
Точно? А как же я им пользуюсь?
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34349310
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот можешь проверить в Экселе
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34354020
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Млин, ну при чем тут Офис.
Вопрос то в том, как Fox воспринимает пустые ячейки Excel. Вот чего не пойму. Если ставлю "", говорит - несовпадение типов.
to AleksMed.
Ну в документации есть только привязка к Range и WorkSheet. Значит не все описали.
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34354243
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolmyrМлин, ну при чем тут Офис.
Вопрос то в том, как Fox воспринимает пустые ячейки Excel. Вот чего не пойму. Если ставлю "", говорит - несовпадение типов.
to AleksMed.
Ну в документации есть только привязка к Range и WorkSheet. Значит не все описали.
Что то ты не договариваешь. :)
Пожалуйста, вот поиск из ФОКСА.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
LOCAL loXlsApp as Excel.Application, loXlsBook as Excel.Workbook, loXlsSheet as Excel.Worksheet

loXlsApp = CREATEOBJECT("Excel.Application")
loXlsBook = loXlsApp.Workbooks.Add()
loXlsSheet = loXlsBook.Worksheets( 1 )

loXlsApp.Visible = .T.

loXlsSheet.Range("A1").Value = "1"
loXlsSheet.Range("A2").Value = "2"
loXlsSheet.Range("A3").Value = ""
loXlsSheet.Range("A4").Value = "4"
loXlsSheet.Range("A5").Value = ""
loXlsSheet.Range("A6").Value = "6"

loXlsSheet.Range("A1").Select 
loXlsSheet.Columns("A:A").Find("").Select
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34362444
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to AleksMed.
Спасибо. :)
Но вопрос все-таки такой: как найти последнюю непустую ячейку?
Например,
loExcel.ActiveSheet.Cells(2,1).Value = "1"
loExcel.ActiveSheet.Cells(3,1).Value = "2".
Как мне найти первую пустую ячейку в 1-м столбце, т.е. (4,1), или последнюю непустую ячейку в 1-м столбце, т.е. (3,1), при том, что ячейка (4,1) может быть и не текстового типа?
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34362568
Fffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Solmyr!
Но задайте же, наконец, свой вопрос на форуме по MS Office!
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34362607
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34362609
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потсчитывает количество не пустых строк в текущем листе _oExcel.ActiveSheet.UsedRange.Rows.Count
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34362618
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Solmyrto AleksMed.
Спасибо. :)
Но вопрос все-таки такой: как найти последнюю непустую ячейку?
Например,
loExcel.ActiveSheet.Cells(2,1).Value = "1"
loExcel.ActiveSheet.Cells(3,1).Value = "2".
Как мне найти первую пустую ячейку в 1-м столбце, т.е. (4,1), или последнюю непустую ячейку в 1-м столбце, т.е. (3,1), при том, что ячейка (4,1) может быть и не текстового типа?
Можешь присвоить и числовые данные ячейкам, Find всё равно сработает.
Еще раз советую почитать хелп по VBA касательно SpecialCells
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34708207
Nik Toris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для любых формул Excel можно посмотреть аналоги для Fox так: записываем Макрос (сервис-макрос-начать запись) с нужной ф-ей, далее заходим Сервис - Макросы - изменить. И смотрим код на VB, который можно будет использовать в фоксе.
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34709762
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Solmyr ... Но вопрос все-таки такой: как найти последнюю непустую ячейку? ...
Никак. К листу экселя надо относиться как к непонятному набору данных, который должен ( но не обязан ) соответствовать какой-то структуре, исходя из этого:
1. Проверка каждой строки на соответствие типов данных ожидаемым (TYPE(), VARTYPE()) Если типы несоответствуют или значения отсутствуют EMPTY() - строку считаем пустой
2. Если кол-во пустых строк превышает какой-то заданный предел - лист считаем полностью обработанным.

Примерно так:
Код: 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.
loEx=newobject("Excel.sheet")
with loEx.parent
	.Workbooks.Open(alltrim(tcXls))
	* Поиск первой строки прайса
	for i =  1  to  50 
		if vartype(.Cells(i,  2 ).value) = 'C' and .Cells(i,  2 ).value = 'Наименование'
			llFind = .t.
			exit
		endif
	endfor
	if llFind
		lnSc =  200  && счетчик пустых
		do while lnSc >  0 
			lcTovar = ''
			lnCena =  0 
			if vartype(.Cells(i,  2 ).value) = 'C'
				lcTovar = alltrim(.Cells(i,  2 ).value)
			endif
			if vartype(.Cells(i,  4 ).value) = 'N'
				lnCena = .Cells(i,  4 ).value
			endif

			if !empty(lcTovar) and !empty(lnCena)
				&& Обрабатываем строку
			else
				lnSc = lnSc -  1 
			endif
			i = i +  1 
		enddo
	endif
endwith
...
Рейтинг: 0 / 0
По Excel помогите чуть-чуть
    #34709949
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF.

Ребята, Вы хоть иногда смотрите на ДАТУ вопроса. 21 февраля 2007 года.
Напоминаю. Сегодня 7 августа 2007 года.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / По Excel помогите чуть-чуть
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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