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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2010, 16:23   #11
ds_nn
 
Регистрация: 02.08.2010
Сообщений: 7
По умолчанию

doober
подскажи пожалуйста еще))
тело в том что в выгруженной таблице дата выглядит примерно так "2006-08-17 00:00:00.000" к нормальной форме я приводил его вот так

Sub q()
lstr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lstr
Cells(i, 3) = Mid(Cells(i, 3), 1, 10)
Next i
End Sub

куда это сейчас можно засунуть?)) или может еще какой способ есть?
я что-то никак не могу понять...
ds_nn вне форума Ответить с цитированием
Старый 04.08.2010, 16:35   #12
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
может еще какой способ есть?
Самый простой способ получения результата за один заход-это предоставить реальный файл-записей на 3-4.мыло и фамилии не интересуют.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 04.08.2010, 16:42   #13
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Sub Sbor()
Application.ScreenUpdating = False
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim n As Integer, L As Integer
Dim Dan_data, Dan_email
On Error Resume Next
Set sh1 = GetObject(GetFolderPath).Sheets("Лист3") ' как в примере

Dan_data = sh1.UsedRange.Value
sh1.Parent.Close (False)

Set sh2 = GetObject(GetFolderPath).Sheets("Лист3") ' как в примере
Dim rng As Range
L = 1

For n = 1 To UBound(Dan_data)

If Int(Now - CDate(Mid(Dan_data(n, 3), 1, 10))) > 365 Then

Set rng = sh2.Columns(1).Find(Dan_data(n, 1))

If Not rng Is Nothing Then
ThisWorkbook.Worksheets(1).Cells(L, 1) = Dan_data(n, 1)
ThisWorkbook.Worksheets(1).Cells(L, 2) = rng.Offset(0, 3)

L = L + 1
End If

End If

Next

sh2.Parent.Close (False)


Application.ScreenUpdating = True
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.08.2010, 23:59   #14
ds_nn
 
Регистрация: 02.08.2010
Сообщений: 7
По умолчанию

вот какая получается таблица, после выгрузки...
Вложения
Тип файла: rar Certificate_primer.rar (11.5 Кб, 10 просмотров)
ds_nn вне форума Ответить с цитированием
Старый 06.08.2010, 01:04   #15
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Sub Sbor()
Application.ScreenUpdating = False
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim n As Integer, L As Integer
Dim Dan_data, Dan_email
On Error Resume Next
Set sh1 = GetObject(GetFolderPath).Sheets(1) 
n = sh1.Columns("I:I").SpecialCells(xlCellTypeConstants).Rows.Count
Dan_data = sh1.Range("I1:S" & n)
sh1.Parent.Close (False)

Set sh2 = GetObject(GetFolderPath).Sheets(3) 
Dim rng As Range
L = 1

For n = 1 To UBound(Dan_data)

If Int(Now - CDate(Mid(Dan_data(n, 4), 1, 10))) > 730 Or _
Int(Now - CDate(Mid(Dan_data(n, 11), Len(Dan_data(n, 11)) - 10, 10))) > 365 Then

Set rng = sh2.Columns(1).Find(Dan_data(n, 1))

If Not rng Is Nothing Then
ThisWorkbook.Worksheets(1).Cells(L, 1) = Dan_data(n, 1)
ThisWorkbook.Worksheets(1).Cells(L, 2) = rng.Offset(0, 3)

L = L + 1
End If

End If

Next

sh2.Parent.Close (False)


Application.ScreenUpdating = True
End Sub
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 06.08.2010 в 10:34.
doober вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Огромная просьба!Научите составлять скрипты для базы данных mc sizoff Помощь студентам 5 17.05.2010 13:59
Просьба помочь Ditmar Microsoft Office Word 1 28.04.2010 13:11
Просьба помочь с задачей. kry Паскаль, Turbo Pascal, PascalABC.NET 9 11.01.2009 13:53