① VB查找指定文件夹并获取文件路径的代码
1.首先打开Excel电子表格,然后在开发工具中打开VBA编辑器,如下图。
② VB 搜索文件夹
VB搜索文件夹,列出指定文件夹下全部文件夹或全部隐藏的文件夹
'查找第一个文件的API
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
'查找下一个文件的API
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
'获取文件属性的API
Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
'关闭查找文件的API
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
'常量
Private Const MAX_PATH = 260
Private Const MAXDWORD = &HFFFF
Private Const INVALID_HANDLE_VALUE = -1
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const FILE_ATTRIBUTE_HIDDEN = &H2
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_SYSTEM = &H4
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100
Private Const BIF_RETURNONLYFSDIRS = 1
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
'定义类(用于查找文件)
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Function GetAllFilePath(path As String, SearchStr As String, bOnlyHidden As Boolean)
Dim FileName As String ' 文件名
Dim DirName As String ' 子目录名
Dim dirNames() As String ' 目录数组
Dim nDir As Integer ' 当前路径的目录数
Dim i As Integer ' 循环计数器变量
Dim hSearch As Long ' 搜索句柄变量
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer
Dim FileAttrib As Long
If Right(path, 1) <> "\" Then path = path & "\"
'搜索子目录
nDir = 0
ReDim dirNames(nDir)
Cont = True
hSearch = FindFirstFile(path & "*", WFD)
If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont
DirName = StripNulls(WFD.cFileName)
If (DirName <> ".") And (DirName <> "..") Then
FileAttrib = GetFileAttributes(path & DirName)
If FileAttrib And FILE_ATTRIBUTE_DIRECTORY Then
If bOnlyHidden Then
If FileAttrib And FILE_ATTRIBUTE_HIDDEN Then List1.AddItem path & DirName
Else
List1.AddItem path & DirName
End If
End If
dirNames(nDir) = DirName
nDir = nDir + 1
ReDim Preserve dirNames(nDir)
End If
Cont = FindNextFile(hSearch, WFD) '获取下一个子目录
Loop
Cont = FindClose(hSearch)
End If
' 遍历目录并累计文件总数
hSearch = FindFirstFile(path & SearchStr, WFD)
Cont = True
If hSearch <> INVALID_HANDLE_VALUE Then
While Cont
FileName = StripNulls(WFD.cFileName)
If (FileName <> ".") And (FileName <> "..") Then
GetAllFilePath = GetAllFilePath + (WFD.nFileSizeHigh * MAXDWORD) + WFD.nFileSizeLow
End If
Cont = FindNextFile(hSearch, WFD) ' 获取下一个文件
Wend
Cont = FindClose(hSearch)
End If
'如果子目录存在则遍历之
If nDir > 0 Then
For i = 0 To nDir - 1
GetAllFilePath = GetAllFilePath + GetAllFilePath(path & dirNames(i) & "\", SearchStr, bOnlyHidden)
Next i
End If
End Function
Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function
Private Sub Command1_Click()
Dim SearchPath As String
Dim FindStr As String
List1.Clear
SearchPath = "c:\rootdir"
FindStr = "*.*"
GetAllFilePath SearchPath, FindStr, true
End Sub
调用方法
GetAllFilePath SearchPath, FindStr, bOnlyHidden
SearchPath 起始路径
FindStr 要查找文件夹名称
bOnlyHidden 是否只查找隐藏的, true 只查找隐藏文件夹, false 全部文件夹
③ 在VB中,如何查找文件
在这里需要举一个例子好能清楚的了解在VB中怎么查找文件,如下:
假设要找的文件是TextBox 叫 TextBox1,那么可以在VB中这样写:
dim FileName, Path as string
Path = "D:\123\"
FileName = Path & TextBox1.Text & ".xlsx" (后面根据文件的扩展名更改即可)
Workbooks.Open filename:=FileName
VB全称是Visual Basic,是一种由 Microsoft 公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不管是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
④ vb 如何查找一个文件 快捷方式 路径 急.
点击开始,程序,运行,在里面输入你要找的路径即可找到
或者用搜索文件夹和文件方式找到
⑤ 打开VB时 vbe6ext.olb 不能被加载,怎么办,w7 64位的,然后晚上查了找VB6和VB7的文件夹
一、关闭Microsoft word/excel/PowerPoint法式。 二、找到找到文件VBE6EXT.OLB,打开C:\Program Files (x86)\Co妹妹on Files\microsoft shared\VBA\VBA6 因人而异,也有可能在Program Files目次里。 三、把VBE6EXT.OLB文件改为VBE6EXT.OLD ,然后肯定。 四、打开Excel法式,入进“开发东西”,若是你没有这个菜单,请在功能栏上右键单击,选择“自界说功能区”,并在右边列表中选择“开发东西”,点击肯定。 五、单击“Visual Basic中”将其打开 六、一个弹出窗口来扣问是否要修复法式,请单击是,运行修复(由于我已经经修复过了,就没有弹出窗口了,无法截图了) 七、关闭Excel,然后从新打开它,就行了。
⑥ VB中怎么查找文件夹中的文件并且打开
假设你的那个TextBox叫TextBox1,则在VBA中可以写:
dimFileName, Path asstring
Path = "D:123"
FileName= Path & TextBox1.Text & ".xlsx" (后面根据文件的扩展名更改)
Workbooks.Openfilename:=FileName
这是基本代码,其他的可以自由发挥。
以下是我常用的一段代码,作用是弹出一个文件夹选择框,选中文件夹后,可以自动依次打开所有文件,方便批量处理。如果不想打开很多,就把 FileDialog 里的参数改为msoFileDialogFilePicker 即可,当然,后面的For...Next循环也就不需要了。
DimPath,filename,FNameAsString
DimFileNumber,i,mAsInteger
DimfopenAsFileDialog
m=1
Setfopen=Application.FileDialog(msoFileDialogFilePicker)
Iffopen.Show=0ThenExitSub
Path=fopen.SelectedItems(1)&""
Sheet2.Range("A:A").ClearContents
'列出目录文件名
filename=Dir(Path)
DoUntilfilename=""
Sheet2.Cells(m,1)=filename
m=m+1
filename=Dir
Loop
FileNumber=WorksheetFunction.CountA(Sheet2.Range("A:A"))'文件总数
Fori=1ToFileNumber
Workbooks.Openfilename:=Path&Sheet2.Cells(i,1)
CallWork
ActiveWorkbook.CloseTrue
Next
⑦ VB获取文件夹路径
给你个VB遍历文件夹的代码吧
Private
Declare
Function
FindFirstFile
Lib
"kernel32"
Alias
"FindFirstFileA"
(ByVal
lpFileName
As
String,
lpFindFileData
As
WIN32_FIND_DATA)
As
Long
'查找下一个文件的API
Private
Declare
Function
FindNextFile
Lib
"kernel32"
Alias
"FindNextFileA"
(ByVal
hFindFile
As
Long,
lpFindFileData
As
WIN32_FIND_DATA)
As
Long
'获取文件属性的API
Private
Declare
Function
GetFileAttributes
Lib
"kernel32"
Alias
"GetFileAttributesA"
(ByVal
lpFileName
As
String)
As
Long
'关闭查找文件的API
Private
Declare
Function
FindClose
Lib
"kernel32"
(ByVal
hFindFile
As
Long)
As
Long
Const
MAX_PATH
=
260
Const
MAXDWORD
=
&HFFFF
Const
FILE_ATTRIBUTE_DIRECTORY
=
&H10
Private
Type
FILETIME
dwLowDateTime
As
Long
dwHighDateTime
As
Long
End
Type
Dim
tempstr
As
String
'定义类(用于查找文件)
Private
Type
WIN32_FIND_DATA
dwFileAttributes
As
Long
ftCreationTime
As
FILETIME
ftLastACCESSTime
As
FILETIME
ftLastWriteTime
As
FILETIME
nFileSizeHigh
As
Long
nFileSizeLow
As
Long
dwReserved0
As
Long
dwReserved1
As
Long
cFileName
As
String
*
MAX_PATH
cAlternate
As
String
*
14
End
Type
Dim
filecount
As
Integer
Dim
dirs()
As
String
Dim
curr
As
Long
Dim
ss()
As
String
Private
Sub
Command1_Click()
tempstr
=
"c:"
searchdir
tempstr
filecount
=
0
End
Sub
Public
Function
searchdir(path
As
String)
Dim
WFD
As
WIN32_FIND_DATA
Dim
i
As
Long
Dim
temp
As
String
Dim
h
As
Long
Dim
zhao
As
Long
Dim
iindex
As
Integer
Dim
dirs()
As
String
Dim
l
As
Long
zhao
=
1
h
=
FindFirstFile(path
&
"\*.*",
WFD)
If
h
<>
-1
Then
While
zhao
zhao
=
1
temp
=
Left(WFD.cFileName,
InStr(WFD.cFileName,
Chr$(0))
-
1)
If
temp
<>
"."
And
temp
<>
".."
Then
If
WFD.dwFileAttributes
And
vbDirectory
Then
ReDim
Preserve
dirs(iindex)
dirs(iindex)
=
path
&
"\"
&
temp
iindex
=
iindex
+
1
ReDim
Preserve
ss(filecount)
ss(filecount)
=
path
&
"\"
&
temp
filecount
=
filecount
+
1
End
If
End
If
zhao
=
FindNextFile(h,
WFD)
Wend
End
If
FindClose
(h)
If
iindex
>
0
Then
For
i
=
0
To
iindex
-
1
Call
searchdir(dirs(i))
Next
i
End
If
End
Function
⑧ VB在哪个文件夹里啊
可以参考下面方法处理:
1、首先打开浏览器,然后在搜索栏输入WPSvba插件,点击搜索,然后在搜索到的页面点击打开。如下图
⑨ 如何获得vb编译的exe所在的文件夹
app.path 即可获取当前文件夹
⑩ vb 如何通过一个文件的全路径获得该文件所在文件夹
解决这个问题有两种方法。
第一种:知道了文件的全路径,那么路径中当然也包含文件所在的文件夹信息,只要从中提取即可。例如,已知文件全路径为“C:WindowsSystem32abc.dll”并赋予变量strPt,可用过下面语句获取文件夹。
left(strPt,instrrev(strPt,""))
instrrev函数的作用是从右侧开始查找指定字符串,并返回数值,此处返回值为20.left函数的作用是从左往右取N个字符,此例中取20个,最后结果为:C:WindowsSystem32。
第二种方法:使用FileSystemObject对象。代码如下:
dimfsoasobject,strFolderasobject
setfso=createobject("scripting.filesystemobject")
setstrFolder=fso.getfolder("C:WindowsSystem32abc.dll")
msgboxstrFolder.path
文件系统对象FSO的英文全称是File System Object ,这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法。通过采用object.method这种在面向对象编程中广泛使用的语法,将一系列操作文件和文件夹的动作通过调用对象本身的属性直接实现。