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一共新建了四个文件 展开
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一共新建了四个文件 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询