powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / копирование в файл xls
4 сообщений из 4, страница 1 из 1
копирование в файл xls
    #34240196
dmitry222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите как сделать. Есть папака d:\папка\ в ней файлы *.xls, как сделать
что vba выбрал a1:a3 и вставил в файл .xls из всех файлов d:\папка\
---------------------------
ChDir "D:\1"
Workbooks.Open Filename:="D:\Папка\1.xls"
Range("A1:C1").Select
Range("C1").Activate
Selection.Copy
Windows("book1").Activate
Range("A1:C1").Select
ActiveSheet.Paste
Windows("1.xls").Activate
ActiveWindow.Close
------------------
но только для 100 файлов
Спасибо
...
Рейтинг: 0 / 0
копирование в файл xls
    #34240212
Lenus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moget vam eto pomoget sm.;

/topic/265397&hl=
...
Рейтинг: 0 / 0
копирование в файл xls
    #34240248
dmitry2222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но мне нужен не список раздела или файлов в папке, а чтобы в один файл xls были записаны значения из файлов в папке (к примеру d:\папка\*.xls). При условие что в этих файлах заполенны только 3 ячейки a1:c1.
d:\папка\1.xls 1 a 4
d:\папка\2.xls 6 d 2
...

итог.xls
1 a 4
6 d 2
я уже пробовал вот это http://www.sql.ru/forum/actualthread.aspx?tid=236239
только видно у меня руки кривые.
----------------------------------------
Sub vv()


Dim objBook As Excel.Workbook 'çàâîäèòñÿ ïåðåìåííàÿ äëÿ îòêðûòèÿ äîêóìåíòà
Dim objSheet As Excel.Worksheet 'çàâîäèòñÿ ïåðåìåííàÿ äëÿ ñòðàíèöû
Dim z%, i%, j%
Dim xxx$, xx$

Set NewSheet = ActiveSheet

j = 1
xx = "A" + Trim(Str(j + 1))
With Application.FileSearch
.NewSearch
.LookIn = "d:\1"
.SearchSubFolders = False
.Filename = "1"
.MatchTextExactly = True
.FileType = msoFileTypeExcelWorkbooks
If .Execute() > 0 Then
Set objBook = Workbooks.Open("d:\1\1.xls")
Set objSheet = objBook.Worksheets(1)
i = 1
Do While objSheet.Cells(i + 1, 1) <> ""
i = i + 1
Loop
j = j + i - 1
xxx = "A1:C" + Trim(Str(i))
objSheet.Range(xxx).Copy
NewSheet.Paste Destination:=NewSheet.Range(xx)
xx = "A" + Trim(Str(j + 1))
objBook.Close
End If
End With

With Application.FileSearch
.NewSearch
.LookIn = "d:\1"
.SearchSubFolders = False
.Filename = "4"
.MatchTextExactly = True
.FileType = msoFileTypeExcelWorkbooks
If .Execute() > 0 Then
Set objBook = Workbooks.Open("d:\1\4.xls")
Set objSheet = objBook.Worksheets(1)
i = 1
Do While objSheet.Cells(i + 1, 1) <> ""
i = i + 1
Loop
j = j + i - 1
xxx = "A1:C" + Trim(Str(i))
objSheet.Range(xxx).Copy
NewSheet.Paste Destination:=NewSheet.Range(xx)
xx = "A" + Trim(Str(j + 1))
objBook.Close
End If
End With

End Sub
------------------------
Показывает только данные последнего файла. Подскажите что не так?
...
Рейтинг: 0 / 0
копирование в файл xls
    #34240332
dmitry2222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, у кого проблемы с vba, как у меня, но есть немного знания английского рекомендую пользоваться поиском на англоязычных сайтах инфы валом, нашел через поиск yahoo.com за 10 минут.
----------------------------------------------------
Sub Example5()
Dim basebook As Workbook
Dim mybook As Workbook
Dim sourceRange As Range
Dim destrange As Range
Dim SourceRcount As Long
Dim N As Long
Dim rnum As Long
Dim MyPath As String
Dim SaveDriveDir As String
Dim FName As Variant

SaveDriveDir = CurDir
MyPath = "D:\1" 'сюда пишем где файлы лежат и все
ChDrive MyPath
ChDir MyPath

FName = Application.GetOpenFilename(filefilter:="Excel Files (*.xls), *.xls", _
MultiSelect:=True)
If IsArray(FName) Then
Application.ScreenUpdating = False
Set basebook = ThisWorkbook

For N = LBound(FName) To UBound(FName)
Set mybook = Workbooks.Open(FName(N))

rnum = LastRow(basebook.Worksheets(1)) + 1

Set sourceRange = mybook.Worksheets(1).Range("A1:C1")
SourceRcount = sourceRange.Rows.Count
Set destrange = basebook.Worksheets(1).Cells(rnum, "A")

basebook.Worksheets(1).Cells(rnum, "D").Value = mybook.Name
' This will add the workbook name in column D if you want

sourceRange.Copy destrange
' Instead of this line you can use the code below to copy only the values

' With sourceRange
' Set destrange = basebook.Worksheets(1).Cells(rnum, "A"). _
' Resize(.Rows.Count, .Columns.Count)
' End With
' destrange.Value = sourceRange.Value

mybook.Close False

Next
End If
ChDrive SaveDriveDir
ChDir SaveDriveDir
Application.ScreenUpdating = True
End Sub

Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / копирование в файл xls
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]