Итак, я пытаюсь автоматизировать задачу, которая включает в себя открытие целой папки похожих документов .ist и вставку данных. У меня уже есть код, который позволяет мне нажимать на каждый элемент, но я пытаюсь сделать эту задачу полностью автоматизированной c. Я довольно новичок в этом. У меня есть опыт кодирования в C, но я кодирую vba только неделю.
Итак, вот что у меня есть:
Это код, который работает
Sub Figureitout()
Dim fileName As Variant, text(1 To 890) As String, textline As String
Dim num As Integer
Dim strDir As String, fso As Object, objFiles As Object, obj As Object, fileCount As Integer
Dim myFile As Variant
Dim posTorque As Integer, posOffset As Integer
'specify folder path
strDir = "C:\Users\Desktop\Folder\"
'create filesystemobj
Set fso = CreateObject("Scripting.FileSystemObject")
'get the folder
Set objFiles = fso.GetFolder(strDir).Files
'count all the files
fileCount = objFiles.Count
'Total number of files in folder
MsgBox fileCount
'read file name
'fileName = Dir(strDir)
'MsgBox fileName
'counter intitialize
num = 1
Do Until num = fileCount
'choose file
myFile = Application.GetOpenFilename("Text Files(*.IST),*.ist", , , , False)
'open file
Open myFile For Input As #num
'copy file contents
Do Until EOF(num)
Line Input #(num), textline
text(num) = text(num) & textline
Loop
'find data
posTorque = InStr(text(num), "Torque:")
posOffset = InStr(text(num), "Offset:")
'close file
Close #num
'make sure offset value exists in document
If InStr(text(num), "Offset:") <> 0 Then
'paste data
Range("A" & num).Value = Mid(text(num), posTorque + 12, 4)
Range("B" & num).Value = Mid(text(num), posOffset + 13, 4)
End If
'delete chosen file
Kill (myFile)
'increment prior to loop
num = num + 1
'Reset data
posTorque = 0
posOffset = 0
Loop
End Sub
Так что я думаю о том, что-то вроде:
For Each fileName in fileCount
FileName = "Dir(strDir)"
Open fileName for Input As #num
но я продолжаю получать ошибки несоответствия типов. Я предполагаю, что это потому, что fileName является строкой в этом сценарии?
Советы? Трюки? Совет?