Sub ProcessFilesInDirectory()
Dim folderPath As String
Dim fileName As String
Dim wb As Workbook
' Путь к директории
folderPath = "C:\temp\"
' Получаем первый файл с расширением .xlsx в директории
fileName = Dir(folderPath & "*.xlsx")
' Перебираем все файлы в директории
Do While fileName <> ""
' Открываем файл
Set wb = Workbooks.Open(folderPath & fileName)
' Вызываем функцию macros3
Call macros3()
' Сохраняем и закрываем файл
wb.Close SaveChanges:=True
' Получаем следующий файл
fileName = Dir
Loop
End Sub
/**
* Функция возвращает сумму ячеек в диапазоне с цветом фона равным color
* @param {Any[][]} range - Диапазон ячеек
* @param {String} color - цвет фона ячеек
* @return {Number} сумма ячеек в диапазоне с цветом фона равным color
*/
function sumByBackgroundColor(range, color) {
const values = range.getValues();
const backgrounds = range.getBackgrounds();
let sum = backgrounds.reduce((acc, row, ri) => {
return row.reduce((acc, c, ci) => {
if (c === color) {
return acc + values[ri][ci];
}
return acc;
}, acc);
}, 0);
return sum;
}
Public Function SumCellsByColor(rng As Range, clr As Long) As Double
Dim cell As Range
Dim colSum As Double
colSum = 0
For Each cell In rng
If cell.Interior.ColorIndex = clr Then
colSum = colSum + cell.Value
End If
Next cell
SumCellsByColor = colSum
End Function
function sortSheets() {
const rangesInfo = [
{sheet: "2022", range: "A2:M", column:3, ascending: true},
{sheet: "Выполнено_2022", range: "A2:M", column:3, ascending: true},
];
let ss = SpreadsheetApp.getActiveSpreadsheet();
rangesInfo.forEach(rangeInfo=>{
try{
let range = ss.getSheetByName(rangeInfo.sheet).getRange(rangeInfo.range);
range.sort({column: rangeInfo.column, ascending: rangeInfo.ascending});
}catch(err){
Logger.log(`error: ${err}`);
};
});
}
=еслиошибка(
ПСТР(
ЛЕВСИМВ($B$1&", ";B2*4)&
ЛЕВСИМВ($C$1&", ";C2*4)&
ЛЕВСИМВ($D$1&", ";D2*4)&
ЛЕВСИМВ($E$1&", ";E2*4)&
ЛЕВСИМВ($F$1&", ";F2*4)&
ЛЕВСИМВ($G$1&", ";G2*4)&
ЛЕВСИМВ($H$1&", ";H2*4)
;1
;СУММ(B2:H2)*4-2
)
)
=еслиошибка(join(", ";filter($B$1:$H$1;B2:H2<>"")))
Private Function getData(strUrl As String) As String
Dim http As Object
On Error Resume Next
Set http = CreateObject("MSXML2.XMLHTTP")
If Err.Number <> 0 Then
Set http = CreateObject("MSXML.XMLHTTPRequest")
End If
On Error GoTo 0
If http Is Nothing Then
getData = ""
Exit Function
End If
http.Open "GET", strUrl, False
http.Send
getData = http.responseText
Set http = Nothing
End Function