|
|
|
| Сейчас вот считываю данные с листов одной книги....
ну канечно:
Public Xl As Object
Public xlBook As Object
Public xlSheet As Object
Public row, col
Public asd As String
Set Xl = CreateObject("Excel.Application")
CREATE_EXCEL = True
Set xlBook = Xl.Workbooks.Open(SHEET_PATCH)
Set xlSheet = Xl.Worksheets(SHEET_NAME)
xlSheet.Activate
Xl.Application.Visible = True 'False '
Xl.UserControl = True
а дальше вопрос.
' Xl.Cells(1, 3).Select - эта строка нужна или нет?
asd = Xl.Cells(1, 3)
========================
Всё работает и без установки фокуса на ячейку.
Но сумниваюся. Я.
================================================
Второй вопрос?
Считываю я построчно лист EXCEL. Бегая циклом по строкам и столбцам. В каждой строке 20-25 ячеек.
И засовываю в таблицу Access.
типа
RST_COMMODITY_TBL.AddNew
RST_COMMODITY_TBL("ID_COMMODITY") = FUN_GENERATE
RST_COMMODITY_TBL("KOD_COMMODITY") = Xl.Cells(row, 2)
;RST_COMMODITY_TBL("COMMODITY_NAME") = Xl.Cells(row, 3)
RST_COMMODITY_TBL("CLIENT_NAME") = CLIENTS(col)
RST_COMMODITY_TBL("VIEW_TARA") = TARA(col)
' Xl.Cells(row, col).Select
asd = Xl.Cells(row, col)
RST_COMMODITY_TBL("AMOUNT_ZAYAVA") = Format(Val(asd), "#0.000")
RST_COMMODITY_TBL("COMMENTARII") = SHEET_NAME & " " & row & col
RST_COMMODITY_TBL("DATE_ZAYVA") = DATE_ZAYVA
RST_COMMODITY_TBL("USER_NAME") = GLB_USER_NAME
RST_COMMODITY_TBL("DATE_RECORDS") = Date
RST_COMMODITY_TBL.Update
Можно ли как то считывать диапазоном... - типа ускорить процесс | |
|
| |
|
|
|
| 1. не сумневайсо ибо явно обращаешься к ичейке. вроде
2. а почему не хочешь аттачнуть лист эксель в аксесс и уже там морочиться, например? :) | |
|
| |
|
|
|
| Я из VB6 это всё делаю.
Всё через АДОВО соединение. | |
|
| |
|
|
|
| Ещё вопрос мну терзает.
Есть столбец в EXCEL - код товара.
Пишут код вручную.
Как бы мне по быстрому проверить , что нет в этоб столбце повторяющихся значений.
конечно в Access_овской таблице это просто сделать,
типа
Private Function DOBLE_KOD_COMMODITY(KOD_COMM As String) As Boolean
'' проверка наличия кода товара в базе (избежать задвоенного)
Dim RST_COMMODITY_TBL As ADODB.Recordset
Set RST_COMMODITY_TBL = New ADODB.Recordset
STR_COMMODITY = ""
RST_COMMODITY_TBL.Open "SELECT COMMODITY_TBL.* " _
& " From COMMODITY_TBL " _
& " Where (((COMMODITY_TBL.KOD_COMMODITY) = '" & KOD_COMM & "'))", GLB_DATA_DB_CONNECTION, adOpenKeyset, adLockOptimistic
If RST_COMMODITY_TBL.RecordCount = 0 Then DOBLE_KOD_COMMODITY = False '' Записей нету!!"
'
If RST_COMMODITY_TBL.EOF And RST_COMMODITY_TBL.BOF Then
' Записей нету!!"
DOBLE_KOD_COMMODITY = False
Else
' записи есть такой номер уже имеется
STR_COMMODITY = RST_COMMODITY_TBL("COMMODITY_NAME")
DOBLE_KOD_COMMODITY = True
End If
'
RST_COMMODITY_TBL.Close
Set RST_COMMODITY_TBL = Nothing
End Function
но это не подходит, потому как на следующем листе коды опять такие же. | |
|
| |
|
|
|
| http://support.microsoft.com/kb/213367/ru
http://office.microsoft.com/ru-ru/excel-help/HP010342518.aspx
http://otvety.google.ru/otvety/thread?tid=42a05ff5807687a3
| |
|
| |
|
|
|
| Спасибо!
Но мне нуна повторяющиеся номера в одном и том же столбце найти. Типа задвоенность. | |
|
| |
|
50 Кб. |
|
| =СЧЁТЕСЛИ(B1:$B$14;B1)-СЧЁТЕСЛИ($B$1:$B$14;B1)
ecли <0 то задваивается чем дальше 0 тем больше повторов
формула для верхней ячейки (растащить на необходимое количество строк)
ну и диапазон у меня маленький 14 строк всего
добавлено
вот=> | |
|
| |
|
|
|
|
| Чё та я ваще ничё не понял...... | |
|
| |
|
|
|
| :))))
в свободном столбце excel вставляем формулу
=если(B1<>"";СЧЁТЕСЛИ($B$1:$B$65535;B1)-СЧЁТЕСЛИ(B1:$B$65535;B1);"")
и копируем ее на весь столбец
в данном случае имеется ввиду что формула находится в первой строке (по исчислению excel)
а столбец в котором надо искать повторы - это В
если 0 то повторов не найдено если любая другая цифра то таких значений на одну больше (т.е. то которое с 0 и это с циферкой) | |
|
| |
|
|
|
| ааааааааааа
а несколько пустых - оно как ?
как повторы? | |
|
| |
|
|
|
|
| Спасибо ! | |
|
| |