Добрый день всем.
Ситуация такая, в папке есть куча файлов в CSV формате
Нужно в каждом файле в столбце F - цена, сделать к цене + 17%, т.е. цена * 1.17
При этом в столбце F могут быть как текстовые, так и числовые значения, так же попадаются ошибки.
До этого делала с обычным excel файлом, все работает, а тут ерунда получается.
Код макроса и образец файла прикладываю ниже.
Заранее спасибо.
Sub Bez_scidki()
Dim folderPath As String
Dim fileName As String
Dim wb As Workbook
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim cellValue As Double
' Укажите путь к папке с файлами
folderPath = "C:\Users\123\Desktop\Площадки\123\2024.07.16\New\"
' Перебираем все файлы в папке
fileName = Dir(folderPath & "\*.csv")
While fileName <> ""
' Открываем файл
Set wb = Workbooks.Open(folderPath & "\" & fileName)
' Получаем первый лист
Set ws = wb.Sheets(1)
' Проверяем, можно ли преобразовать столбец H в числовой формат
For i = 2 To ws.Range("F" & ws.Rows.Count).End(xlUp).Row
If IsNumeric(ws.Cells(i, "F").Value) Then
cellValue = CDbl(ws.Cells(i, "F").Value) * 1.17
ws.Cells(i, "F").Value = Format(cellValue, "0.00")
Else
ws.Cells(i, "F").Value = "0"
End If
Next i
' Сохраняем файл
wb.Save
' Закрываем файл
wb.Close
' Переходим к следующему файлу
fileName = Dir()
Wend
MsgBox "Обработка файлов завершена.", vbInformation
End Sub
Ситуация такая, в папке есть куча файлов в CSV формате
Нужно в каждом файле в столбце F - цена, сделать к цене + 17%, т.е. цена * 1.17
При этом в столбце F могут быть как текстовые, так и числовые значения, так же попадаются ошибки.
До этого делала с обычным excel файлом, все работает, а тут ерунда получается.
Код макроса и образец файла прикладываю ниже.
Заранее спасибо.
Sub Bez_scidki()
Dim folderPath As String
Dim fileName As String
Dim wb As Workbook
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim cellValue As Double
' Укажите путь к папке с файлами
folderPath = "C:\Users\123\Desktop\Площадки\123\2024.07.16\New\"
' Перебираем все файлы в папке
fileName = Dir(folderPath & "\*.csv")
While fileName <> ""
' Открываем файл
Set wb = Workbooks.Open(folderPath & "\" & fileName)
' Получаем первый лист
Set ws = wb.Sheets(1)
' Проверяем, можно ли преобразовать столбец H в числовой формат
For i = 2 To ws.Range("F" & ws.Rows.Count).End(xlUp).Row
If IsNumeric(ws.Cells(i, "F").Value) Then
cellValue = CDbl(ws.Cells(i, "F").Value) * 1.17
ws.Cells(i, "F").Value = Format(cellValue, "0.00")
Else
ws.Cells(i, "F").Value = "0"
End If
Next i
' Сохраняем файл
wb.Save
' Закрываем файл
wb.Close
' Переходим к следующему файлу
fileName = Dir()
Wend
MsgBox "Обработка файлов завершена.", vbInformation
End Sub