Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / По Excel помогите чуть-чуть / 20 сообщений из 20, страница 1 из 1
21.02.2007, 10:33
    #34346075
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Привет, люди.
Вопросы такие:
1) как в Excel на листе выделить непустой диапазон? Или хотя бы как найти первую пустую ячейку в колонке, чтоб считывать только непустые строки, заведенные пользователем?
2) раздобыл метод Find объекта Range. Но он не ищет пустую ячейку. На "" ругается о несовпадении типов. И еще. Каково значение параметра lookin, чтобы искал значения?
...
Рейтинг: 0 / 0
21.02.2007, 10:46
    #34346141
VSchelk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
В Excel есть такие команды: СЧИТАТЬПУСТОТЫ(...), БСЧЁТА(...)-подсчитывает все непустые,ДЛСТР(...)возвращает кол-во знаков
...
Рейтинг: 0 / 0
21.02.2007, 11:02
    #34346220
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Это очень хорошо. Но мне нужны команды, которые из фокса вызывать, а не формулы Excel.
...
Рейтинг: 0 / 0
21.02.2007, 12:32
    #34346573
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Не совсем понятна задача, но по первому вопросу почитай хелп по VBA о SpecialCells
...
Рейтинг: 0 / 0
21.02.2007, 13:14
    #34346785
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Задача загрузить данные в уч.систему из др.системы через файл dbf.
В Excel файл юзеры забивают соответствия занений справочников внеш.системы уч.системе. И вот надо взятое значение спр-ка вн.с-мы найти на листе и взять соот-е значение уч.с-мы.
В принципе, если расскажете, как работает loExcel.ActiveSheet.Range("A:A").Find, то этого будет наверно достаточно.
Я щас выкрутился переносом данных с листов в таблицы, но хотелось бы как-то по-нативнее сделать.
А SpecialCells - это ваще о чем?
...
Рейтинг: 0 / 0
21.02.2007, 14:05
    #34347055
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
loExcel.ActiveSheet.Columns(1).Find("ЧтоИщем")
...
Рейтинг: 0 / 0
22.02.2007, 09:19
    #34348970
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Если уж на то пошло, то метод Find есть только у Range и у Worksheet.
Интересуют именно его параметры. А еще вернее - первый. Выражение для поиска. Если я пишу
loExcel.ActiveSheet.Range("A:A").Find("","A1",-4163), то он ругается на несовпадение типов, и именно на первый параметр. Как мне найти первую пустую ячейку то?
...
Рейтинг: 0 / 0
22.02.2007, 10:18
    #34349196
Ffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Перейди в форум по Office и задай вопрос там. Он не по FoxPro.
...
Рейтинг: 0 / 0
22.02.2007, 10:41
    #34349294
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
SolmyrЕсли уж на то пошло, то метод Find есть только у Range и у Worksheet.
Точно? А как же я им пользуюсь?
...
Рейтинг: 0 / 0
22.02.2007, 10:45
    #34349310
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Вот можешь проверить в Экселе
...
Рейтинг: 0 / 0
26.02.2007, 09:02
    #34354020
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Млин, ну при чем тут Офис.
Вопрос то в том, как Fox воспринимает пустые ячейки Excel. Вот чего не пойму. Если ставлю "", говорит - несовпадение типов.
to AleksMed.
Ну в документации есть только привязка к Range и WorkSheet. Значит не все описали.
...
Рейтинг: 0 / 0
26.02.2007, 10:38
    #34354243
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
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
01.03.2007, 09:17
    #34362444
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
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
01.03.2007, 10:02
    #34362568
Fffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Solmyr!
Но задайте же, наконец, свой вопрос на форуме по MS Office!
...
Рейтинг: 0 / 0
01.03.2007, 10:13
    #34362607
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
...
Рейтинг: 0 / 0
01.03.2007, 10:13
    #34362609
Роман Новичек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Потсчитывает количество не пустых строк в текущем листе _oExcel.ActiveSheet.UsedRange.Rows.Count
...
Рейтинг: 0 / 0
01.03.2007, 10:16
    #34362618
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
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
06.08.2007, 15:46
    #34708207
Nik Toris
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
Для любых формул Excel можно посмотреть аналоги для Fox так: записываем Макрос (сервис-макрос-начать запись) с нужной ф-ей, далее заходим Сервис - Макросы - изменить. И смотрим код на VB, который можно будет использовать в фоксе.
...
Рейтинг: 0 / 0
07.08.2007, 10:54
    #34709762
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
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
07.08.2007, 11:29
    #34709949
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По Excel помогите чуть-чуть
OFF.

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


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