Страница: 1 |
Страница: 1 |
Вопрос: Как cкопировать данные из другого файла Excel
Добавлено: 11.10.05 12:07
Автор вопроса: IceD
Необходимо скопировать данные из файла, который выбирается в диалоговом окне Открыть. Однако при копировании все запятые у рациональных чисел пропадают (например, 1,003 стает 1299999999999 и так далее).
Помогите. плиз.
вот пример как я это делаю:
----------------------------------
Dim str1, str2 As String
res = Application.FindFile
If res = True Then
Range("e2:I2").Select 'copy data
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveWindow.Close
Range("A1:F1").Select 'delete old data
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete
Range("A1").Select 'insert data
ActiveSheet.Paste
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Range("A2").Select
Selection.End(xlDown).Select 'how many data
KolDATA = ActiveCell.Row - 1
Range("A2").Select
UserForm1.TextBox4 = Cells(2, 1)
UserForm1.TextBox5 = Cells(KolDATA, 1)
End If
-------------------
может это можно сделать по другому?
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
-=Fenix=-
Вопросов: 33
Ответов: 81
Профиль | | #1
Добавлено: 11.10.05 20:41
Если из файла екзля, то попробуй скопировать значение а не саму ячейку, т.е.
И перед етим надда поставить все ячейки в соответствующий формат, если поставить в формат даты к примеру то у тя выйдет не то шо в ячейке
Номер ответа: 2
Автор ответа:
IceD
Вопросов: 1
Ответов: 2
Профиль | | #2
Добавлено: 16.10.05 20:39
Вообще копировать нужно не 1 ячейку (значение в ячейке), а массив, причем количесвто строк заранее неизвестно. И формат ячеек вообще ничего не меняет (в моем случае).
Метод Selection.Copy парит. если руками копировть-> вставить все нормально, а прога глючит
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 16.10.05 23:57
Dim mass$()
ReDim mass$(0)
do
...
mass$(ind) = Cells(x,y)
ind++
ReDim Preserve mass$(ind)
...
loop
ну типа редимить массив не стирая прошлых данных в нём. Ну а цикл сам придумешь, я в VBA не очень, на фонарь do..loop написал
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 16.10.05 23:59
ой ой... не "ind++" а "ind = ind + 1" ето ж вам не с
а можно и без счётчика, чё то типа
ReDim Preserve mass$(Ubound(mass$)+1) но так наверное медление будет...
Номер ответа: 5
Автор ответа:
IceD
Вопросов: 1
Ответов: 2
Профиль | | #5
Добавлено: 25.10.05 20:17
Пасиб всем кто ответил. HACKER - respect
вопрос оказался тривиальным