首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码在第二个宏中不工作

代码在第二个宏中不工作
EN

Stack Overflow用户
提问于 2014-08-27 20:50:14
回答 1查看 71关注 0票数 1

我对vba很陌生,我需要一些帮助。这是正在使用的代码。这只是一个调用另一个宏和循环的基本宏。但是,它似乎跳过了从workbooks.openactiveworkbook.saveas的所有内容。令人讨厌的一点是,我以前使用过这段代码两次,但文件名和路径不同,一切都正常工作。

我已经完成了这段代码,它实际上只是跳过了那些行,而在原始代码中却没有这样做。

代码语言:javascript
复制
Sub oddball_macro_loop()
'
' oddball_macro_loop Macro
'
'

Dim rawPath As String
Dim rawFile As String
Dim savePath As String
Dim oWB As Workbook
Dim fName As Variant


rawPath = "I:\Cores\DMB\E-Prime Tasks\Salience Task\Data\Macros\Raw\For macro"
rawFile = Dir(rawPath & "*.txt")
savePath = "I:\Cores\DMB\E-Prime Tasks\Salience Task\Data\Macros\Processed"

ChDir (rawPath)
Application.DisplayAlerts = True

Do While rawFile <> ""
    Workbooks.Open Filename:="I:\Cores\DMB\E-Prime Tasks\Salience Task\Data\Macros\oddball_macro.xlsm"
    Set oWB = Workbooks.Open(rawPath & rawFile)
    Application.Run "'oddball_macro.xlsm'!oddball_macro"
    Sheets("Data").Select


'Sets File Name
    Dim text As String
    text = Range("Z12")
    fName = Mid(text, 19)
    ActiveWorkbook.SaveAs Filename:=savePath & fName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWorkbook.Close False
    rawFile = Dir()
Loop

ActiveWorkbook.Close False
Application.ScreenUpdating = True


End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-27 21:44:42

如果它跳过了这些行,那么这就意味着Dir()函数的结果为null。

看起来您可能在rawPath的末尾缺少一个路径分隔符吗?这应能解决以下问题:

代码语言:javascript
复制
rawFile = Dir(rawPath & Application.PathSeparator & "*.txt")

或者,也可以确保将其添加到任务状态中:

代码语言:javascript
复制
rawPath = "I:\Cores\DMB\E-Prime Tasks\Salience Task\Data\Macros\Raw\For macro\"

你经常会看到人们这样做是一种重复检查:

代码语言:javascript
复制
If Not right(rawPath, 1) = Application.PathSeparator then 
    rawPath = rawPath & Application.PathSeparator
End If
rawFile = Dir(rawPath & "*.txt")

或者你可以得到真正的幻想然后这样做:

代码语言:javascript
复制
Dim sep as String
sep = Application.PathSeparator

rawFile = Dir(rawPath & IIF(Right(rawPath,1) = sep, "*.txt", sep & ".txt"))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25536702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档