Private Type GUIDs
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Declare Function CLSIDFromProgID Lib "ole32" (ByVal lpszProgID As Long, rclsid As GUIDs) As Long
Public Function IsOLEObjectInstalled(Name As String) As Boolean
Dim mGuid As GUIDs
On Error Resume Next
IsOLEObjectInstalled = CLSIDFromProgID(StrPtr(Name), mGuid) = 0
End Function
Private Sub GetOLEObjects()
Dim msg As String
msg = "Microsoft.ACE.OLEDB.12.0 = " & IsOLEObjectInstalled("Microsoft.ACE.OLEDB.12.0") & vbCrLf
msg = msg & "Microsoft.Jet.OLEDB.4.0 = " & IsOLEObjectInstalled("Microsoft.Jet.OLEDB.4.0") & vbCrLf
MsgBox msg
End SubOption Explicit
Const VERSION = "rev100"
Const VERSIONDATE = "17/10/2016"
Sub ProcessDir(folder)
Dim fname, file, subfolder, i
Const ForReading = 1
Const ForWriting = 2
Const xlOpenXMLWorkbook = 51
For Each file In folder.Files
If extold = LCase(fso.GetExtensionName(file)) Then
fname = file.Path
Set fl = fso.OpenTextFile(fname, ForReading, False)
txt = Split(fl.ReadAll(), vbCrLf)
For i = 0 To UBound(txt)
txt(i) = Replace(txt(i), ";", ",")
Next
fl.Close
file.Name = file.Name & "_bak"
Set fl = fso.CreateTextFile(fname, True)
fl.Write Join(txt, vbCrLf)
fl.Close
End If
Next
For Each file In folder.Files
If extold = LCase(fso.GetExtensionName(file)) Then
fname = file.Path
Set fl = CreateObject("Excel.Application")
' fl.Visible = True ' Debug
With fl.Workbooks.Open(fname)
' Do Something... '
.SaveAs Replace(fname, extold, extnew), xlOpenXMLWorkbook: .Close False
End With
fso.DeleteFile(Replace(fname, extold & "_bak", extold))
End If
Next
For Each file In folder.Files
If extold & "_bak"= LCase(fso.GetExtensionName(file)) Then
file.Name = Replace(file.Name, extold & "_bak", extold)
MsgBox "File " & file.Name & " successfully created.", vbInformation
End If
Next
For Each subfolder In folder.SubFolders
ProcessDir (subfolder)
Next
End Sub
Dim fso, folder, fl, txt
folder = "C:\Users\User\Desktop\"
' Change the extension in the program settings
Const extold = "csv"
' This extension can be written after changing semicolon to a comma
Const extnew = "xlsx"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folder)
ProcessDir (folder)
Set fso = Nothing =$C5&$E5 по всей колонке). Рабочую формулу заменить на: =IF($C5;VLOOKUP($B5;'seznam januar 2016'!$B$5:$AI$2500;3);" ") ' 1 - нижняя граница массива, 5 - верхняя граница массива
Dim arr(1 To 5) As Integer
' Если не объявлять нижнюю границу,
' то по умолчанию в Excel нижняя граница массива будут начинаться с 0 до 5ReDim. Параметр Preserve можно опустить:Dim arr() As Integer
b = 5
' Параметр Preserve нужен для сохранения значений в массиве при изменении верхней границы
ReDim Preserve arr(1 To b)=ПОИСКПОЗ($A1;$A:$A;0)<>СТРОКА($A1), а диапазон укажите =$A:$A. 
=$A1+СТЕПЕНЬ(0,5;3) и протянуть до 41-й строки, а в ячейку A1 записать значение "-2,5" =ОКРУГЛ(ПИ()*$A1;2)=SIN(ПИ()*$A1)0" (в моём примере "21"). Sub SaveAComma()
ActiveWorkbook.SaveAs Filename:="C:\Users\User\Desktop\ActiveSheet.csv", _
FileFormat:=xlCSV, CreateBackup:=False, Local:=False
End Subsep=,=$E5<СЕГОДНЯ()=$E5<СЕГОДНЯ()-29В Excel все даты сохраняются в виде целых чисел, а все значения времени — в виде десятичных дробей. В этой системе Excel может выполнять со значениями даты и времени операции сложения, вычитания и сравнения, как и с любыми другими числами. Операции со всеми значениями дат производятся с использованием этой системы.
CDate; в Excel по умолчанию даты - это числа, - хорошо складываются.j. Без указания типа переменной получается j As Variant. Если будет возникать указанная ошибка, у Вас в колонке A попалось "не число". Примечание: Типы данных.