我有一个在VB.net中工作的同事给我的vb.net代码,但它在VBA中不起作用。我在VBA文件中使用那段代码。有没有办法改变语法在VBA中工作,或从VBA或其他东西在VB.net中运行它。或者是否有完全不同的方式来实现这一切?我还没有运气试图更改代码或搜索答案。
Sub UpdateTVGData()
Dim vPath As String = GetPath("PR.G.ZMDPPL.TVG")
End Sub
Function GetPath(ByVal vFIle As String) As String
Dim Path As String
Dim files() As String = System.IO.Directory.GetFiles("\\sw100313\ZMD_Archives", vFIle + ".*", IO.SearchOption.AllDirectories)
Dim sortcrit(files.Length - 1) As Integer
Dim i As Integer
For i = 0 To files.Length - 1
sortcrit(i) = Val(Mid(files(i), Len(files(i)) - 6, 4))
Next i
System.Array.Sort(sortcrit, files)
Path = files(files.Length - 1)
Path = Left(Path, 35)
'clean up
files = Nothing
sortcrit = Nothing
Return Path
End Function
答案 0 :(得分:0)
我尝试使用Dir()函数根据我在此处看到的其他帖子选择正确的文件夹,但我得到了#34;"对于第一次迭代的foldnm值。如果我使用shell和相同的文件路径,我可以打开文件夹,所以我不认为路径是问题。
Sub get_file()
File_pth = "explorer.exe \\sw100313.w10\ZMD_Archives"
ctr = 1
max_folder_val = 0
foldnm = Dir(File_pth, vbDirectory)
Do While foldnm <> ""
Mid(fileName, Len(fileName)-6, 4)
ctr = ctr + 1
foldnm = Dir()
If Mid(foldnm, Len(foldnm)-6, 4) > max_folder_val Then
max_folder = foldnm
max_folder_val= Mid(foldnm, Len(foldnm)-6, 4)
End If
Loop
End Sub