代码如下,里面有一句 
Set spFolder = spShell.BrowseForFolder(0, "选择目录:", 0, "c:\") ,这样可以默认选择c盘
但是如果我dim dir as string 
          dir="c:\"       
       Set spFolder = spShell.BrowseForFolder(0, "选择目录:", 0, dir) '就没有默认打开的效果,
但是换成这样就可以 const dir as string="c:\"    
       Set spFolder = spShell.BrowseForFolder(0, "选择目录:", 0, dir) '这个就没有问题,我要使用动态变量实现默认打开的效果,怎么弄,一定要用动态变量哈
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
"SHGetPathFromIDListA" (ByVal pIdl As Long, ByVal pszPath As String) As LongPrivate Type BrowseInfo
hwndOwner As Long
piDLroot As Long
pszdisplayName As String
lpsztitle As String
ulFlags As Long
lpfncallback As Long
lParam As Long
iImage As Long
End Type
Dim SelPath$, spShell, spFolder, spFolderItem
Private Sub Command1_Click()
    On Error GoTo errhandler '有错误或选择取消返回32755的错误代号,执行错误处理副程序
    Set spShell = CreateObject("Shell.Application") '创建对像
    Set spFolder = spShell.BrowseForFolder(0, "选择目录:", 0, "c:\") '定义spFolder=定义对像展开目录,e:\music是予设的展开路径
    Set spFolderItem = spFolder.Self '定义spFolderItem
    SelPath = spFolderItem.Path 'SelPath=选中的spFolderItem文件夹路径
    If Right(SelPath, 1) <> "\" Then SelPath = SelPath & "\" '选择的路径最后面加上\
    MsgBox SelPath
errhandler:      '错误处理副程序
    If Err > 0 Then Exit Sub '有错误或按了取消即退出这个sub
End Sub