Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

通过VBA写入EXCEL时,如何指定“父”名称

chinasa  发表于:2014-05-06 08:16:10  
复制

'循环1
Set TableA = dbs.OpenRecordset("tbl_ABC", dbOpenSnapshot)    '打开查询
    TableA.MoveFirst
    I = 1
      
Do Until TableA.EOF = True
                  
                   If I <= 3 Then
                   Set xlSheet = xlBook.Worksheets(I)
                   xlSheet.Name = cmhcbl
                   End If

                   If I > 3 Then
                   Set sht = Worksheets.Add(after:=Worksheets(I - 1))
                    sht.Name = cmhcbl '这里没问题,是正确的。在下一个循环中出错。
                   End If
loop


'循环2
Set TableA = dbs.OpenRecordset("tbl_DEF", dbOpenSnapshot)    '打开查询
    TableA.MoveFirst
    I = 1
      
Do Until TableA.EOF = True
                  
                   If I <= 3 Then
                   Set xlSheet = xlBook.Worksheets(I)
                   xlSheet.Name = cmhcbl
                   End If

                   If I > 3 Then
                   Set sht = Worksheets.Add(after:=Worksheets(I - 1))
                    sht.Name = cmhcbl '在这里出错,提示不能与其它工作表重名,估计是没有指定“父”名称的问题。
                   End If
loop

 

Top
chinasa 发表于:2014-05-06 09:04:27

    Set wks = Workspaces(0)
    Set dbs = CurrentDb()
    Set xlApp = CreateObject("Excel.Application")      

    Set xlBook = xlApp.Workbooks.Add()
    xlApp.Visible = True    

这是前面的声明。     

请问怎样能把Set sht = Worksheets.Add(after:=Worksheets(I - 1)) 的父对象加上?



cspa 发表于:2014-05-06 09:19:26

我认为不是父对象的问题,系统提示错误是工作表重名。

 If I <= 3 Then
                   Set xlSheet = xlBook.Worksheets(I)
                   xlSheet.Name = cmhcbl                         '你在这里指定了xlSheet.Name的值
                   End If

                   If I > 3 Then
                   Set sht = Worksheets.Add(after:=Worksheets(I - 1))
                    sht.Name = cmhcbl       '在这里出错,提示不能与其它工作表重名,估计是没有指定“父”名称的问题。这里又重复将同一变量值指定给不同的sheet.Name 它当然要提示工作表重名!                            
                   End If

 



chinasa 发表于:2014-05-06 09:31:01
当 I 不同时,cmhcbl 也不同。所以两者不会重复

chinasa 发表于:2014-05-06 10:26:24

应该为:

Set sht = xlBook.Worksheets.Add(after:=xlBook.Worksheets(i - 1))



总记录:4篇  页次:1/1 9 1 :