Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Excel VBA (часть 2)

Автор: vasiliy74
Дата сообщения: 18.07.2007 11:45
Как сортировать массив?
Добавлено:
сделал сортировку


Код:
Range(search, end_search).Select
source.Sort Key1:=search_result.Offset(3, 0), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveWindow.SmallScroll Down:=-3
Автор: nick7inc
Дата сообщения: 18.07.2007 15:12
vasiliy74

Цитата:
Set source = Range(search, search.End(xlDown))' но это только колонка, а как мне выделить все её строки? я же с ними буду работать, или нет?????

можно, к примеру, попробовать узнать номера строк и колонок из объекта типа Range. У вас отсутствует та часть кода, где происходит поиск уникальных имён, вот туда (Excel VBA (часть 2)) можно что-то вроде этого вставить:


Код:
dim row1 as long, column1 as long, ws as range, target_sheet as worksheet, source_sheet as worksheet

set target_sheet=worksheets("Имя")
[...]
row1=c1.Row
column1=c1.Column

source_sheet = c1.Parent :ws= source_sheet.Cells.Rows(row1)
' или сразу так: ws= c1.Parent.Cells.Rows(row1)

' Просто, не правда ли? Можно всегда узнать, какому
' листу принадлежит указанный диапазон

msgbox "Sheet name is '" +source_sheet.name+"'."

ws.Copy
target_sheet.Paste (target_sheet.Cells(row1 + 1, 1))

' второй параметр должен быть всегда 1, когда копируется строка.
' Если надо иначе, то выделаяем не строку целиком (Row), а формируем диапазон,
' (Range) тогда его можно по горизонтали в любое место вставить.

Автор: vasiliy74
Дата сообщения: 18.07.2007 16:23
спасибо щя буду пробовать
Автор: nick7inc
Дата сообщения: 18.07.2007 16:40
vasiliy74

Цитата:
а так необходимо будет н каждом листе искать последнюю введённую нами запись


В принципе, не сложно написать функцию, которая возвращает первую найденную пустую строку в указанном листе:


Код:
Function Find_empty_row(Mysheet as worksheet) as range
dim found as Boolean, myrow as Range, mycell as Range

For Each myrow in Mysheet.rows
found=true
For Each mycell in myrow
if not isempty(mycell) then found=false:exit for
next mycell
if found then Find_empty_row=myrow:exit function
Next myrow

end function
Автор: vasiliy74
Дата сообщения: 18.07.2007 16:48
ругается при компиляции "Compile error: Sub or Function not defined" на set target_sheet=sheet("СписокБумаг") хотя она определена выше:source_sheet as worksheet

Добавлено:
ой сорри это ругается на саму функцию sheet наверно нужно sheets??
Автор: nick7inc
Дата сообщения: 18.07.2007 16:56

Цитата:
ругается на саму функцию sheet

Лучше используй worksheets(), sheets() может вернуть ещё и диаграмму, а первый - только лист с ячейками.
Автор: vasiliy74
Дата сообщения: 18.07.2007 17:03
поправил теперь ругается на
ws = c1.Parent.Cells.Rows(row1)
или на
source_sheet = c1.Parent: ws1 = source_sheet.Cells.Rows(row1)
не то, ни дгругое его(VBA ) не устраивает не доконца понимаю значение выражение Parent
Добавлено:
а ошибка звучит следущим образом: "Run-time error `91`: Object variable or With blok variable not set" я так понял что то с типами не страстается ?? или нет?

Добавлено:
Общий вид программы мега макроса %)[more=код..]
Sub GeniralМакрос()
'ищем значение по наименованию столбцп так как таблицы две останавливаемся на втором
'кривой поиск правим

Dim search_result As Range
Dim Start_search As Range
Dim some_sheet As Worksheet
Dim search As Range

Set some_sheet = Worksheets("OTCHET")
Sheets("OTCHET").Select
Set Start_search = some_sheet.Cells(1, "A")

Set search_result = Cells.Find(What:="Наименование цен", After:=Start_search, LookIn _
:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False)

Set search_result = Cells.FindNext(After:=search_result)
Set search = search_result.Offset(3, 0)
'MsgBox search_result


'создаём временный лист в котором будет храниться список бумаг и скрываем его
'Необходимо сделать проверку на существование подобного листа

'Sheets.Add.Name = "СписокБумаг"
'ActiveWindow.SelectedSheets.Visible = False


Dim ws As Worksheet, str As String
Dim in_r As Range, out_r As Range
Dim index As Long, found As Boolean
Dim c1 As Variant, c2 As Variant
index = 1

Dim row1 As Long, column1 As Long, ws1 As Range, target_sheet As Worksheet, source_sheet As Worksheet
Set target_sheet = Sheets("СписокБумаг")


' Входной диапазон на листе со внешним именем "Лист1" A:A ((((изменил
Dim last_cell As Long
With Worksheets("OTCHET")
last_cell = .Cells.SpecialCells(xlCellTypeLastCell).Row
Set in_r = Range(search, search.End(xlDown))
End With
' Выходной диапазон на листе со внешним именем "СписокБумаг" A:A
Set out_r = Worksheets("СписокБумаг").Range("A:A")

For Each c1 In in_r.Cells
found = False
For Each c2 In out_r.Cells
If IsEmpty(c2) Then Exit For
found = (c2.Value = c1.Value)
If found Then Exit For
Next c2

If Not found Then
out_r.Cells(index, 1).Value = c1.Value
str = out_r.Cells(index, 1).Value

If c1.Value <> "" Then
Set ws = Sheets.Add
ws.Name = c1.Value
End If

index = index + 1
End If

row1 = c1.Row
column1 = c1.Column
' или сразу так: source_sheet = c1.Parent: ws1 = source_sheet.Cells.Rows(row1)
ws = c1.Parent.Cells.Rows(row1)

' Просто, не правда ли? Можно всегда узнать, какому
' листу принадлежит указанный диапазон

MsgBox "Sheet name is '" + source_sheet.Name + "'."

ws1.Copy
target_sheet.Paste (target_sheet.Cells(row1 + 1, 1))

' второй параметр должен быть всегда 1, когда копируется строка.
' Если надо иначе, то выделаяем не строку целиком (Row), а формируем диапазон,
' (Range) тогда его можно по горизонтали в любое место вставить.


If IsEmpty(c1) Then Exit For
Next c1

MsgBox "Done", vbInformation

End Sub
[/more]

Автор: nick7inc
Дата сообщения: 18.07.2007 17:22

Цитата:
ws = c1.Parent.Cells.Rows(row1)
неверно. Объекты так не присваиваются. Забыл SET.
Parent - это путь вверх по структуре классов Excell.


Добавлено:
Структура примерно такая:
Excel->WorkBook->Worksheet->Range->Cell
Сверху (в данном случае - слева) в низ можно попасть простым выбора члена (через точку):

Код: ActiveWorkBook.Sheets("My sheet").Range("A1:B10").Cells(1,1)
Автор: vasiliy74
Дата сообщения: 18.07.2007 17:38
большое спасибо за азы, вроде листал книгу, а вот чтобы так просто и понятно было описано или хотябы упомянуто нет..
поставил Set он теперь тутже пишет что тип не сочитается "Run-time error '13':Type mismatch"
Автор: nick7inc
Дата сообщения: 18.07.2007 18:15
Заходи, пока мне не в тягость.

Цитата:
"Run-time error '13':Type mismatch"

Правильно, тип проверь у ws. Rows() возвращает Range.

Добавлено:
На сегодня всё.
Автор: chalvs
Дата сообщения: 19.07.2007 00:08
Всем привет!

nick7inc
Не получается с этой формулой =И(епусто($A$5);епусто($D$5))
посмотри пожалуста!
http://slil.ru/24648141
Автор: vasiliy74
Дата сообщения: 19.07.2007 10:02
олппечатка моя была
сделал так
Код: row1 = c1.Row
column1 = c1.Column
' или сразу так: Set source_sheet = c1.Parent: ws1 = source_sheet.Cells.Rows(row1)
Set ws1 = c1.Parent.Cells.Rows(row1)

' Просто, не правда ли? Можно всегда узнать, какому
' листу принадлежит указанный диапазон
Автор: nick7inc
Дата сообщения: 19.07.2007 10:23
chalvs

Цитата:
Не получается с этой формулой =И(епусто($A$5);епусто($D$5))

А ты куда её ставил? Если в ячейку, то и не должно.

Что делаешь:
1) Проверяешь язык своего Excel. Поставь в ячейку эту формулу и проверь, работает ли она вообще. Если 2 ячейки пустые она должна давать "ИСТИНА".

2) выделяешь строчку, напр. A3 по E3, Меню/Формат/Условное форматирование
Условие1:Формула, ставишь формулу:
=И(епусто($C3);епусто($E3))

Обращай винание на присутствие/отсутствие знака $ перед именем колонки и строки. Это важно, когда будешь копировать формат на другие колонки.

3) Кнопка "Формат" и настраиваешь выделение цветом при выполнении данного условия (если "Истина").

4) Закрываешь окно, выделяешь A3 по E3, , выделяешь все остальные ячейки в слолбцах от A до E. И буквы проверь, может по-русски пишешь в формулу имена колонок.

Добавлено:
Не забудь сначала в белый цвет всё покрасить.

Добавлено:
vasiliy74

Цитата:
но данные не скопироались по листам

Дерзай. Кстати, здесь нет кода копирования. Обрати внимание, что при вставке надо дважды указывать книгу и по одному разу лист и место вставки.

Добавлено:
Хотя в объект Range ссылка на книгу уже входит, можно только сам Range указать.
Автор: vasiliy74
Дата сообщения: 19.07.2007 10:37
хе хе он вставляет только значение target_sheet.Cells(row1 + 1, 1) какое то заоблачное и он их вставляет в конец а не в начало каждого листа

Код:
Set target_sheet = Sheets(c1.Value)
ws1.Copy
target_sheet.Paste (target_sheet.Cells(row1 + 1, 1))
Автор: nick7inc
Дата сообщения: 19.07.2007 10:44

Цитата:
он их вставляет в конец а не в начало каждого листа

Ну правильно, ты укажи нужную строку, а не (row1+1), которую я туда написал.
Автор: vasiliy74
Дата сообщения: 19.07.2007 10:46
помню как-то заходила речь о поиске последней строки через функцию


Цитата:
Function Find_empty_row(Mysheet as worksheet) as range
dim found as Boolean, myrow as Range, mycell as Range

For Each myrow in Mysheet.rows
found=true
For Each mycell in myrow
if not isempty(mycell) then found=false:exit for
next mycell
if found then Find_empty_row=myrow:exit function
Next myrow

end function

плохо пинимаю как её потом в теле макроса вызывать???
А можно например писать колличество, обработанных и разнесённых по листам строк, в наш дополнительный лист (со списком уникальных значений), и по нему ориентироваться, и это будет нагляднее для отладки и проверки кода



nick7inc- Главный босс VBA !!!

Добавлено:
Наверно нужно изменить значение out_r добавить туда второй столбец
[more=Код..]
' Входной диапазон на листе со внешним именем "Лист1" A:A ((((изменил
Dim last_cell As Long
With Worksheets("OTCHET")
last_cell = .Cells.SpecialCells(xlCellTypeLastCell).Row
Set in_r = Range(search, search.End(xlDown))
End With
' Выходной диапазон на листе со внешним именем "СписокБумаг" A:A
Set out_r = Worksheets("СписокБумаг").Range("A:A")

For Each c1 In in_r.Cells
found = False
For Each c2 In out_r.Cells
If IsEmpty(c2) Then Exit For
found = (c2.Value = c1.Value)
If found Then Exit For
Next c2

If Not found Then
out_r.Cells(index, 1).Value = c1.Value
str = out_r.Cells(index, 1).Value

If c1.Value <> "" Then
Set ws = Sheets.Add
ws.Name = c1.Value
End If

index = index + 1
End If

row1 = c1.Row
column1 = c1.Column
' или сразу так: Set source_sheet = c1.Parent: ws1 = source_sheet.Cells.Rows(row1)
Set source_sheet = c1.Parent
Set ws1 = c1.Parent.Cells.Rows(row1)

' Просто, не правда ли? Можно всегда узнать, какому
' листу принадлежит указанный диапазон

'MsgBox "Sheet name is '" + source_sheet.Name + "'."
Set target_sheet = Sheets(c1.Value)
ws1.Copy
target_sheet.Paste (target_sheet.Cells(row1 + 1, 1))

' второй параметр должен быть всегда 1, когда копируется строка.
' Если надо иначе, то выделаяем не строку целиком (Row), а формируем диапазон,
' (Range) тогда его можно по горизонтали в любое место вставить.


If IsEmpty(c1) Then Exit For
Next c1
[/more]

А также поменять помимо Index находить значение строки в out_r наверно через цикл For Each

Добавлено:
вот как я представляю этот цикл:

For Each y in out_r
if y=c1 then out_r.Cell(B,y.row)=++1
Exit for
end if
next y

проблемы в понимании того как определить out_r и как потом с ей работать? или добавить ещё одну подобную out_r переменную чтобы не путаться например out_r1=Worksheets("СписокБумаг").Range("B:B")
Автор: nick7inc
Дата сообщения: 19.07.2007 11:22

Цитата:
плохо пинимаю как её потом в теле макроса вызывать

Начнём с того, что надо задаться каким-то листом, куда мы будем писать. Нужно или его имя, из которого мы получим объект типа Worksheet - Mysheet или сразу этот объект.
Оставляю эту часть кода на вас.

Вызываем функцию:

Код: target_row=Find_empty_row(Mysheet)
Автор: vasiliy74
Дата сообщения: 19.07.2007 11:36
Сделал так :

Код:
Set out_r = Worksheets("СписокБумаг").Range("A:A")
Set out_r1 = Worksheets("СписокБумаг").Range("B:B")

For Each c1 In in_r.Cells
....
....
For Each с3 In out_r
If с3 = c1 Then
out_r1.Cells(с3.Row, 2) = out_r1.Cells(с3.Row, 2) + 1
Exit For
End If
Next с3
....
....
Автор: nick7inc
Дата сообщения: 19.07.2007 13:54

Цитата:
записал макрос глянул в код и вот что увеидл справка мне не помогла понять как это работает?
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False


Это нужно, если вам необходима специальная вставка, а простое копирование 1 к 1му не устраивает? Или я не пойму, что нужно...

Добавлено:

Цитата:
out_r1.Cells(с3.Row, 2) = out_r1.Cells(с3.Row, 2) + 1

Что-то не пойму, что оно делает...

Добавлено:
out_r и out_r1 - что это и зачем нужно?
Автор: vasiliy74
Дата сообщения: 19.07.2007 15:29
out_r1 это столбец рядом с out_r поскольку я незнаю как в out_r добавить второй решил сделать по подобию скорее всего не рационально, ...

out_r1.Cells(с3.Row, 2) = out_r1.Cells(с3.Row, 2) + 1 - это счётчик напротив значений в столбце out_r пишет кол-во скопированных элементов, таким образом я избежал того чтобы считать где на листе у меня последняя ячейка для записи ..

вот такой цикл [more=получился]
Dim ws As Worksheet, str As String
Dim in_r As Range, out_r As Range
Dim index As Long, found As Boolean
Dim c1 As Variant, c2 As Variant, c3 As Variant
index = 1

Dim row1 As Long, column1 As Long, ws1 As Range, target_sheet As Worksheet, source_sheet As Worksheet, out_r1 As Range
Dim number_r As Byte

' Входной диапазон на листе со внешним именем "Лист1" A:A ((((изменил
Dim last_cell As Long
With Worksheets("OTCHET")
last_cell = .Cells.SpecialCells(xlCellTypeLastCell).Row
Set in_r = Range(search, search.End(xlDown))
End With
' Выходной диапазон на листе со внешним именем "СписокБумаг" A:A
Set out_r = Worksheets("СписокБумаг").Range("A:A")
Set out_r1 = Worksheets("СписокБумаг").Range("B:B")

For Each c1 In in_r.Cells
found = False
For Each c2 In out_r.Cells
If IsEmpty(c2) Then Exit For
found = (c2.Value = c1.Value)
If found Then Exit For
Next c2

If Not found Then
out_r.Cells(index, 1).Value = c1.Value
str = out_r.Cells(index, 1).Value

'Создание листов
If c1.Value <> "" Then
Set ws = Sheets.Add
ws.Name = c1.Value
End If

index = index + 1
End If

'Запись колличества строк
For Each с3 In out_r
If с3 = c1 Then
out_r1.Cells(с3.Row, 1) = out_r1.Cells(с3.Row, 1) + 1
Exit For
End If
Next с3

'Разнисение строк по листам
row1 = c1.Row
column1 = c1.Column
' или сразу так: Set source_sheet = c1.Parent: ws1 = source_sheet.Cells.Rows(row1)
Set source_sheet = c1.Parent
Set ws1 = c1.Parent.Cells.Rows(row1)

' Просто, не правда ли? Можно всегда узнать, какому
' листу принадлежит указанный диапазон

'MsgBox "Sheet name is '" + source_sheet.Name + "'."
Set target_sheet = Sheets(c1.Value)
ws1.Copy
For Each с3 In out_r
If с3 = c1 Then
number_r = out_r1.Cells(с3.Row, 1)
Exit For
End If
Next с3
target_sheet.Paste (target_sheet.Cells(number_r, 1))

' второй параметр должен быть всегда 1, когда копируется строка.
' Если надо иначе, то выделаяем не строку целиком (Row), а формируем диапазон,
' (Range) тогда его можно по горизонтали в любое место вставить.


If IsEmpty(c1) Then Exit For
Next c1
[/more]

Добавлено:

Цитата:
а простое копирование 1 к 1му не устраивает?

устраивает, просто хочу чтобы ширина ячеек тоже копировалась
Автор: chalvs
Дата сообщения: 19.07.2007 15:34
Всем привет!

nick7inc
Заработала по этой Формуле =И(епусто($C3);епусто($E3))
Спасибо тебе за помощ.






Добавлено:
nick7inc
Нужна еще формула!
В диапазоне C2:F2 стоят разные суммы чисел, допустим в ячейке C2 вписано
сумма 2300, в ячейке D2 вписано 1700 и так дальше. Нада чтобы в диапазоне C4:F4
показывало какая яейка знемает место. 1место,3место и так дальше.
Зарание блогодорю!
Автор: nick7inc
Дата сообщения: 19.07.2007 17:44
vasiliy74

Цитата:
out_r1 это столбец рядом с out_r поскольку я незнаю как в out_r добавить второй решил сделать по подобию скорее всего не рационально, ...

Может и рационально... Если добавить второй столбец к первому, то надо менять цикл, иначе он будет по 2 ячейки пробегать в каждой строке диапазона.

Добавлено:

Цитата:
хочу чтобы ширина ячеек тоже копировалась

Это свойство столбца, по-моему, просто не сделать. Надо после копирования пробегать по всем копируемым ячейкам строки, вытаскивать от туда номера столбцов, и переносить ширину столбца с обного листа на другой. Может как-то ещё можно это сделать, я сейчас не соображу.

Добавлено:
Проще должно быть. Думаю, что пока косметичиские вещи надо отложить.

Добавлено:
chalvs

Цитата:
в диапазоне C4:F4
показывало какая яейка знемает место

Условное форматирование не подходит. Там можно только 3 разных условия вставить.
Всем пока.
Автор: SERGE_BLIZNUK
Дата сообщения: 19.07.2007 19:27
chalvs

Цитата:
В диапазоне C2:F2 стоят разные суммы чисел, допустим в ячейке C2 вписано
сумма 2300, в ячейке D2 вписано 1700 и так дальше. Нада чтобы в диапазоне C4:F4
показывало какая яейка знемает место. 1место,3место и так дальше.


если я правильно понял, что Вам надо:
вставьте в ячейку C4 такую формулу:
Код:
=ЕСЛИ(C2=НАИБОЛЬШИЙ($C$2:$F$2;1);1;ЕСЛИ(C2=НАИБОЛЬШИЙ($C$2:$F$2;2);2;ЕСЛИ(C2=НАИБОЛЬШИЙ($C$2:$F$2;3);3;ЕСЛИ(C2=НАИБОЛЬШИЙ($C$2:$F$2;4);4;" "))))
Автор: chalvs
Дата сообщения: 19.07.2007 21:09
SERGE_BLIZNUK


Цитата:
=ЕСЛИ(C2=НАИБОЛЬШИЙ($C$2:$F$2;1);1;ЕСЛИ(C2=НАИБОЛЬШИЙ($C$2:$F$2;2);2;ЕСЛИ(C2=НАИБОЛЬШИЙ($C$2:$F$2;3);3;ЕСЛИ(C2=НАИБОЛЬШИЙ($C$2:$F$2;4);4;" "))))


То что нужно
Спасибо!!!
Автор: Riccio
Дата сообщения: 20.07.2007 10:05
Помогите пожалуйста!
я не программист, а финансовый аналитик, но вот пришлось работать с базами данных в экселе. У меня большой массив по моторным маслам. Необходимо разбить их по типам, а даны только компании и марки и другие данные в беспорядочном порядке. Но у меня есть таблица соответсвий - что марки с таким названиям относятся к таким типам.

Я использую простой макрос, но он позволяет искать только по одной марке. как сделать чтобы он считывал не только одно это название, а все названия из какого-то диапазона ячеек и если есть совпадения хоть в одной - ставил Х, например, в данной строке - моторные масла.

Range("AA2").Select
Selection.Copy
Range("AB2").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=IF(ISERROR(FIND(""EXXON MOBIL"",RC[-16],1)),0,""X"")"
Selection.Copy
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ActiveSheet.Paste

Здесь RC[-16] - тот столбец - где беспорядочные данные и по которым я ищу - какое это масло.
Автор: vasiliy74
Дата сообщения: 20.07.2007 10:41
Riccio
попробуй sumif()
Автор: chalvs
Дата сообщения: 20.07.2007 11:38
Всем привет!
Ребята такой вот вопрос.
Заканивая работу в Excel нада чтобы делала резервную копию допустим в
F:\Бухгалтерия\автобухгалтер.xls
Такое реально!
Автор: SERGE_BLIZNUK
Дата сообщения: 20.07.2007 13:28
Riccio

Цитата:
У меня большой массив по моторным маслам.

выложи таблицу, в которой на одном листе ваш массив (можно образец - ну там пару десятков произвольных значений - это я к тому, если данные, вдруг, представляют коммерческую тайну) и на втором листе соответствие - "у меня есть таблица соответствий - что марки с таким названиям относятся к таким типам"
запакуйте файл, выложите на бесплатный файл-хостинг, сюда в форму скопируйте ссылку на выложенный файл, мы посмотрим, что можно сделать...
(p.s. как вариант можете сделать картинку, на которой приведены обе таблицы и написать, что вы хотите получить - но вариант с выложенным XLS файлом проще и лучше!)


chalvs

Цитата:
Заканивая работу в Excel нада чтобы делала резервную копию допустим в
F:\Бухгалтерия\автобухгалтер.xls

для одного конкретного файла?! копайте в сторону использования события
Workbook -> BeforeClose
( Private Sub Workbook_BeforeClose(Cancel As Boolean) )
думаю, что проблем не должно быть, но у меня лично опыта использования данного события нет...
Кстати,, Отпишитесь сюда о полученных результатах!

Автор: Riccio
Дата сообщения: 20.07.2007 14:23

http://webfile.ru/1474483 - вот ссылка на материалы!

заранее спасибо!
Автор: SERGE_BLIZNUK
Дата сообщения: 20.07.2007 16:31
Riccio
ну, задача более менее ясна, неясным (по крайней мере для меня) остался один момент:
вот сразу, самая первейшая строчка, в столбце B следующий текст:

Цитата:
СИНТЕТИЧЕСКАЯ СМАЗКА ДЛЯ ОБРАБОТКИ МЕХАНИЗМОВ В ПРИНТЕРАХ, СКАНЕРАХ: СМАЗКА G-16 В ПЛАСТИКОВОЙ БАНКЕ ЕМКОСТЬЮ 40 МЛ ДЛЯ ПРИНТЕРА STYLUS C87 - АРТ. 1080606-5ШТ


В какую ячейку H,I,G нужно ставить крестик и КАК по этому названию вы находите тип масла? Прошу указать, в какой ячейке (адрес строки!) L,M,N находится критерий, по которому надо разнести этот тип масла...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133

Предыдущая тема: Написание своего HyperTerminal для считывания данных


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.