#excel #vba
#excel #vba
Вопрос:
Например, в папке есть несколько файлов, файлы цикла в папке, и он должен искать определенный текст в указанных ячейках, если текст совпадает с ячейками, файл должен сохраняться по указанному пути
This line am getting error"If Range("A6").Value = ("CORE SKUS ONLY: N").Value amp; If Range("A7").Value =("ECO SKUS ONLY: Y").Value Then
{{{Sub OpenLatestFile()
Dim MyPath As String
Dim MyFile As String
Dim LatestFile As String
Dim LatestDate As Date
Dim rFind As Range
Dim strSearch As String
strSearch = "CORE SKUS ONLY"
Dim LMD As Date
MyPath = "C:Usersp_DivyankaDesktopDivyankaVendor MetricsUS"
If Right(MyPath, 1) <> "" Then MyPath = MyPath amp; ""
MyFile = Dir(MyPath amp; "RptLineItemFillRate_*.xls", vbNormal)
If Len(MyFile) = 0 Then
MsgBox "No files were found...", vbExclamation
Exit Sub
End If
Do While Len(MyFile) > 0
LMD = FileDateTime(MyPath amp; MyFile)
If LMD > LatestDate Then
LatestFile = MyFile
LatestDate = LMD
End If
MyFile = Dir
Loop
Workbooks.Open MyPath amp; LatestFile
Windows("RptLineItemFillRate_*.xls").Activate
ActiveWindow
If Range("A6").Value = ("CORE SKUS ONLY: N").Value amp; If Range("A7").Value =("ECO SKUS ONLY: Y").Value Then
Windows("RptLineItemFillRate_*.xls").Activate
ChDir "C:Usersp_DivyankaDesktopDivyankaVendor MetricsUSFY2018ING"
ActiveWorkbook.SaveAs Filename:= _
"C:Usersp_DivyankaDesktopDivyankaVendor MetricsUSFY2018INGUS_ING_Aged_Detail.xls" _
, FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Else
ActiveWindow.Close
End If
End Sub}}}}
Комментарии:
1. В чем именно проблема? Пожалуйста, опишите вашу проблему более подробно..
2. Вы хотите удалить второй
IF
в проблемной строке. В VBAIF
иThen
являются «маркерами» для приложения для определения условий. Наличие двухIF
перед однимTHEN
сбивает с толку приложение. Кроме того, для логических условий используйтеAND
вместоamp;
.amp;
в основном используется для объединения строк.
Ответ №1:
Это VBS, поэтому можно вставить в VBA.
'Remove next line in VBA
Main
Sub Main
'On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Dirname = InputBox("Enter Dir name (don't use quotes)")
Searchterm = Inputbox("Enter search term")
ProcessFolder DirName
End Sub
Sub ProcessFolder(FolderPath)
' On Error Resume Next
Set fldr = fso.GetFolder(FolderPath)
Set Fls = fldr.files
For Each thing in Fls
If Instr(LCase(thing.OpenAsTextStream.ReadAll), LCase(SearchTerm)) > 0 then
msgbox Thing.Name amp; " " amp; Thing.path
'fso.copyfile thing.path, "C:backup"
End If
Next
Set fldrs = fldr.subfolders
For Each thing in fldrs
ProcessFolder thing.path
Next
End Sub