Цитата: Дмитрий Щербаков(The_Prist) от 02.12.2024, 11:42:41задачу и все условияскриншот табл disk.yandex.ru/i/2djQUUw3uGURww (вставить картинку не получилось)
один из файлов источников: 101006649.csv
22;11;24;09;26;15;101006649;
001;28;00;00;D2;76;44;19;28;-24.72;
002;28;00;00;D2;76;44;11;12;-18.77;
003;28;00;00;D2;76;44;EA;FE;-13.24;
004;28;00;00;D2;76;44;D9;00;-8.71;
005;28;00;00;D2;76;44;1A;23;-5.02;
006;28;00;00;D2;76;44;7A;5A;-2.75;
007;28;00;00;D2;E8;00;4D;FB;-1.78;
008;28;00;00;D2;E8;00;15;84;-1.45;
009;28;00;00;D2;E8;00;19;D9;-1.45;
010;28;00;00;D2;E8;00;2C;D1;-1.77;
011;28;00;00;D2;E8;00;3C;3F;-1.88;
Код Выделить
Function Get_Value_From_Close_Book(sWb As String, sShName As String, sAddress As String)
Dim vData, objCloseBook As Object
Set objCloseBook = GetObject(sWb)
vData = objCloseBook.Sheets(sShName).Range(sAddress).Value ' чтение из .csv
objCloseBook.Close False ' закрытие .csv
Set objCloseBook = Nothing
Get_Value_From_Close_Book = Replace(vData, ".", ",") ' замена точек на запятые
End Function
Если добавлюКод Выделить
NRow = Application.ThisCell.Row
то в переменной NRow будет значение номера строки ячейки откуда вызывается функция=Get_Value_From_Close_Book("F:\1\101006657.csv";"101006657";"J2")
Это хотел бы использовать примерно так ("D" & NRow & ":N" & NRow)
чтобы заполнить все ячейки в строке одним вызовом, а не 11-ю как сейчас.
Позже узнал как отвязаться от фиксированного пути и при вызове функции передавать только имя файла и номер ячейки. имя листа совпадает с именем файла.
Код Выделить
Dim Path As String
Path = ThisWorkbook.Path
Path = (Path & "\")
Path = (Path & sWb & ".csv")