Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2017, 16:47   #1
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
Сообщение Адрес ячейки по ее содержимому

Привет, есть кипа файлов excel и нужно партировать их в БД, но проблема в том что столбцы находятся на разных адресах, то есть файлы не идентичны, к примеру в одном файле Столбец A - "Гаражный номер", а столбец B - "Гос номер", а в другом файле наоборот, но я точно знаю что над столбцом с гос номерами всегда будет стоять цифра 1, а над столбцом с гаражным номером - цифра 2, и такими цифрами заполнена вся первая строчка каждого файла, то есть A1 = "1" B1 = "2" A2 = "Гос номер" В2 = "Гаражный номер", в одном файле, А в другом В1 = "1" С1 = "2" В2 = "Гос номер" С2 = "Гаражный номер", и вопрос заключается в том, что как определить по какому адресу в первой строке стоит заветная циферка "1"? Простите за не совсем внятное объяснение...
PTyTb32 вне форума Ответить с цитированием
Старый 02.03.2017, 16:58   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Циклом по строке или поиском.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.03.2017, 08:03   #3
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Циклом по строке или поиском.
А про поиск подробнее можно как его организовать?
все что пришло в голову
Код:
var 
  n,i:integer; 
  b:array [1..39] of integer; //39 нужных столбцов, номера которых хочу узнать
begin
  n:=0; //порядковый номер для массива
  for i:=0 to 80 do //цикл для 80 ячеек первой строки (больше 80 точно не будет)
    if Ap.Cells[1,i] <> '' then //если значение в очередной ячейке не пустое
    begin
      b[n]:=i; //записываем номер не пустой ячейки
      inc(n); // увеличиваем счетчик
    end;
end;
по идее в итоге будет массив с номерами нужных столбцов, но тут есть условие, что номера столбцов должны быть проставлены строго по порядку, а фактически они в хаотичном порядке

ой кажется понял!
вот так сработает ведь?
Код:
var 
  n,i:integer; 
  b:array [1..39] of integer; //39 нужных столбцов, номера которых хочу узнать
begin
  n:=0; //порядковый номер для массива
  for i:=1 to 39 do//цикл для 39 нужных мне столбцов
    for j:=0 to 80 do //цикл для 80 ячеек первой строки (больше 80 точно не будет)
      if Ap.Cells[1,j] = i then //если значение в очередной ячейке равно искомому
      begin
        b[n]:=j; //записываем номер следующей ячейки
        inc(n); // увеличиваем счетчик
      end;
end;
по идее в итоге мы получим следующее
дано
...A..B..C..D..E..F..G
1.....1..3.......2.....4
2.........................
3.........................
после этого поиска в В будет лежать [2,5,3,7] и зная что первый номер это гос номер, я буду знать что B[1] - это номер столбца с гос номерами
Это ведь будет так работать?

Последний раз редактировалось PTyTb32; 03.03.2017 в 08:51.
PTyTb32 вне форума Ответить с цитированием
Старый 03.03.2017, 09:33   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Да я без понятия, я нахожусь в разделе "Microsoft Office и VBA"
Тут вроде тогда так где-то...:
Код:
Sub tt()
Dim a(1 To 39), i&
    For i = 1 To 80
        If Len(Cells(1, i)) Then a(Cells(1, i)) = i
    Next
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 03.03.2017 в 09:42.
Hugo121 вне форума Ответить с цитированием
Старый 03.03.2017, 09:48   #5
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
По умолчанию

Да проверил и это работает! записывает все хорошо и находит!
PTyTb32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#, Excel. Адрес ячейки virtex34 Общие вопросы .NET 0 01.12.2013 20:32
Полный адрес ячейки konstantin1990 Microsoft Office Excel 2 06.09.2013 20:28
Заливка ячейки согласно содержимому spirit-ua Microsoft Office Excel 5 31.01.2013 13:25
адрес ячейки ПавелАлександрович Microsoft Office Excel 2 11.04.2011 15:08
[VBA & Excel] Косяк с поиском по содержимому ячейки. felixXx Помощь студентам 0 19.08.2010 19:54