VBA遍历工作簿是否打开,这段代码为什么无法实现遍历文件是否打开的? 5

Sub商户销售额()Setsht=Worksheets("详细")DimiAsIntegerDimwb_nameAsWorkbookDimnew_wbDimprovinc... Sub 商户销售额()

Set sht = Worksheets("详细")
Dim i As Integer
Dim wb_name As Workbook
Dim new_wb
Dim province
new_wb = 0

i = 2
Do While sht.Cells(i, "b").Value <> ""
On Error Resume Next
province = sht.Cells(i, "b").Value
wb_name.Name = Workbooks(province).Name
For Each wb_name In Workbooks
If wb_name.Name = province Then
MsgBox "文件已打开"
Else
Set new_wb = Workbooks.Add
new_wb.SaveAs Filename:="C:\Users\小布\Desktop\有用分期\VBA套路\" & province
MsgBox (new_wb.Name)
End If
Next
Loop
End Sub

这段代码是为了拆分工作簿中的数据,将B列进行分类,按不同的类别进行文件创建,但是VBA数值监控中wb_name.Name的值怎么都是sht的文件名称。
假如B1、B2、B3、B4分别为A、A、B、A,sht的名称为“测试.xls”
按道理来说,B1、B2、B4应该是只新建一次文件的,但是这段代码的wb_name.Name一直是"测试",导致从B1-B4一共新建了四个文件
展开
 我来答
feiheme
2017-05-04 · TA获得超过290个赞
知道小有建树答主
回答量:326
采纳率:33%
帮助的人:33.6万
展开全部
i 没用哦,固定的值你直接2就完了,
thisworkbook是主人,activeworkbook是宾客,
在遍历的时候要区分开,要指定,要不然就是混乱的,
你最好还是把遍历的最基本代码理清楚,然后再加其他的操作判断,这样才不会错
拆分完新book也要关闭,最好还是实际测试一下各个值是否正常才能找到原因
看源文件吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式