wps无法执行FileDIalog

我在excel用vba写了一段另存代码,在excel中运行正常,但在wps里却总是保存到D盘,而没有弹窗选择部分,即FileDialog不执行,请问这种情况如何解决

代码如下:

'另存为
Sub SaveSheetsAsWorkbook()
Dim myPath, wb As String
Dim sht, sht1 As Worksheet
Dim Nsht As FileDialog '打开保存对话框
Dim iMsg As Integer
Set Nsht = Application.FileDialog(msoFileDialogFolderPicker)
With Nsht
If .Show = -1 Then
' 如果单击了确定按钮,则将选取的路径保存在变量中
myPath = .SelectedItems(1)
End If
End With
Set sht = ThisWorkbook.Sheets("投资费用明细表")
wb = Right(sht.Range("A2"), Len(sht.Range("A2")) - 7)
sht.Copy
On Error Resume Next '有这个文件夹就不创建
MkDir (myPath & "\01 会审纪要及投资费用明细表") '生成文件夹
'保存统计表到指定盘符
ActiveWorkbook.SaveAs fileName:=myPath & "\01 会审纪要及投资费用明细表\" & wb & "—投资费用明细表.xlsx"
iMsg = MsgBox("是否生成信息表?", 4 + 32)
If iMsg = 6 Then
Set sht1 = ThisWorkbook.Sheets("设计信息表")
sht1.Copy
ActiveWorkbook.SaveAs fileName:=myPath & "\01 会审纪要及投资费用明细表" & "\设计信息表.xlsx"
Workbooks("设计信息表.xlsx").Close
Else
Exit Sub
End If
End Sub

内蒙古
浏览 998
收藏
6
分享
6 +1
6
+1
全部评论 6
 
文昉童鞋
我也遇到同样的问题,解决方法是在Sub 代码前增加禁止屏幕刷新代码 Application.ScreenUpdating = False 即可。 找了很久答案,是在ExcelHome论坛找到的回答。
· 广东省
回复
固体
我也是通过此方法解决的此问题
· 黑龙江省
回复
 
牧屮
打卡10
· 河南省
回复
 
懒得批爆
懒得批爆

创作者俱乐部成员

完全看不懂代码,请教了同事帮忙检查,同事给出的答案是 在 Excel 中,FileDialog 对象的默认类型为 msoFileDialogFilePicker,表示文件选择器。但在 WPS 中,该类型默认情况下 不包含文件夹选择功能。 为了解决这个问题,需要将 FileDialog 对象的类型显式设置为 msoFileDialogFolderPicker,表示文件夹选择器。 第7行修改为Set Nsht = Application.FileDialog(msoFileDialogOpen) 然后同事说这就可以了,不过这个时候FileDialog 对象将不再支持选择文件,如果需要选择文件,可以使用 Application.GetOpenFilename 方法。 最后同事给了个一段话说是建议,老实说看不懂啥意思 InitialFileName 属性(用于设置默认打开文件夹)和 Filter 属性(用于设置文件筛选器) 【金山文档】 wps无法执行FileDIalog@鱼生 https://kdocs.cn/l/ciaUzjLBsaxX
· 四川省
1
回复
鱼生
我在网上搜的内容,与您的回复相似。但有一点不明白是,它在其他的程序内就可以运行(如截图),而把它单独拿出来在wps里就不行了,这个就有点儿奇怪了
· 内蒙古
回复