' Первый параметр - имя файла
' Следующие - (неважно сколько, от 1) адреса ячеек
Sub nn(fName As String, ParamArray arrCells())
Dim s As String
Dim arrLines() As String
Dim iEnd As Integer
Dim i As Integer
'arrCells - адреса ячеек, куда будем вставлять
'определяем верхнюю границу массива переданных адресов
iEnd = UBound(arrCells)
' если нет адресов - так что тут делать ))) молча уходим
If iEnd = -1 Then Exit Sub
If Len(Dir$(fName)) > 0 Then
' заполняем буфер пробелами по размеру файла
s = Space(FileLen(fName))
' открываем и читаем файл
Open "e:\1.txt" For Binary As #1
Get #1, , s
Close #1
If Len(s) Then
' если в файле что-то было разбиваем его на массив строк
arrLines = Split(s, vbCrLf)
' определяем соответствие количества строк и количества переданных адресов
If iEnd > UBound(arrLines) Then iEnd = UBound(arrLines)
For i = 0 To iEnd
' и по адресам записываем значения
' без проверок число или нет записано - что есть то и пишем
Range(arrCells(i)).Value = arrLines(i)
Next i
Else
MsgBox "Нет данных!"
End If
Else
MsgBox "Нет данных!"
End If
End Sub
Sub kk()
' проверочный макрос
'Call nn("e:\1.txt", "Лист1!A1", "Лист2!B2")
Call nn("e:\1.txt")
End Sub
Проверочный макрос лучше все же так делать:
Sub kk()
' проверочный макрос
Call nn("e:\1.txt", "Лист1!A1", "Лист2!B2")
End Sub