首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

老手 请指点关于EXCEL对象输出有关问题

2012-01-15 
各位高手老手 请指点关于EXCEL对象输出问题 麻烦大家看一下下面的代码~~小弟有很多地方不太东 现标记如下 

各位高手老手 请指点关于EXCEL对象输出问题

麻烦大家看一下下面的代码~~小弟有很多地方不太东 现标记如下 希望个位高手给我详细将一下~ 小弟增分一百 


Set   mXls   =   CreateObject( "Excel.Application ")
        mXls.Visible   =   False
       
        Set   xlBook   =   mXls.Workbooks.Add
        Set   xlSheet   =   xlBook.Worksheets(1)
       
        mXls.Range( "A1 ").Value   =   frmName   '窗体的Caption
        mXls.Range( "A1 ").Font.Size   =   20
        mXls.Range( "A1 ").HorizontalAlignment   =   xlCenter
        RangeCells   =   "A "   +   RTrim(LTrim(Str(1)))   +   ": "   +   "H "   +   RTrim(LTrim(Str(1)))                   '这一句不理解 希望高手指点
        Set   aRang   =   xlSheet.Range(RangeCells)  ’还有这一句
        aRang.Select  ‘这一句也不懂
        aRang.HorizontalAlignment   =   xlHAlignCenterAcrossSelection

        If   Lv_Name.ListItems.count   <   1   Then
        Screen.MousePointer   =   vbDefault
        Exit   Sub
        End   If
        Dim   K   As   Long
        K   =   0
        Dim   m   As   Integer
        Dim   n   As   Integer
        m   =   0:   n   =   0
        For   I   =   1   To   Lv_Name.ColumnHeaders.count   -   1  整个FOR循环详细讲解一下   比如chr$(64+m)   format$(2)的意思 
                K   =   K   +   1
                If   K   >   26   Then   '超过Z时变为AA1,AB1格式
                        m   =   m   +   1 
                        SA   =   "A "   &   Chr$(64   +   m)   &   Format$(2)
                Else
                        SA   =   Chr$(64   +   K)   &   Format$(2)
                End   If
                xlSheet.Range(SA).Value   =   Lv_Name.ColumnHeaders(I   +   1).Text ’下面着三句
                xlSheet.Range(SA).ShrinkToFit   =   True
                xlSheet.Range(SA).BorderAround   ,   xlThin,   ,   vbBlack
        Next
        K   =   0
        m   =   0
        n   =   0
        J   =   0
       
        For   I   =   1   To   Lv_Name.ListItems.count   ‘同样的讲解一下~~


                K   =   K   +   1
                For   J   =   1   To   Lv_Name.ColumnHeaders.count   -   1
                        If   J   >   26   Then
                                m   =   m   +   1
                                SA   =   "A "   &   Chr$(64   +   m)   &   Format$(K   +   2) ’这里
                        Else
                                SA   =   Chr$(64   +   J)   &   Format$(K   +   2)  ‘这里~
                        End   If
                        If   J   =   1   Then
                                xlSheet.Range(SA).Value   =   Lv_Name.ListItems(I).SubItems(1)
                        Else
                                xlSheet.Range(SA).Value   =   Lv_Name.ListItems(I).SubItems(J)
                        End   If
                        xlSheet.Range(SA).ShrinkToFit   =   True
                        xlSheet.Range(SA).BorderAround   ,   xlThin,   ,   vbBlack
                Next   J
                m   =   0
                n   =   0
                DoEvents
        Next   I
        mXls.Visible   =   True
        Screen.MousePointer   =   vbDefault
        If   Err.Number   <>   32755   Then 
                Dim   file   As   String
        End   If

最后谢谢 大家~~

[解决办法]
我来解释一些
mXls.Range( "A1 ").HorizontalAlignment = xlCenter
RangeCells = "A " + RTrim(LTrim(Str(1))) + ": " + "H " + RTrim(LTrim(Str(1))) '这一句不理解 希望高手指点
这个是Range 从Ax:Hy的那些cell们 x= RTrim(LTrim(Str(1))) ,y= RTrim(LTrim(Str(1)))

Set aRang = xlSheet.Range(RangeCells)  ’还有这一句 这个就找到了那些相应的cell
aRang.Select  ‘这一句也不懂,这个就是选中刚刚的cell们


这个就是说定位为SA的cell的一些操作

xlSheet.Range(SA).Value = Lv_Name.ColumnHeaders(I + 1).Text ’下面着三句,这个就是给里面内容赋值
xlSheet.Range(SA).ShrinkToFit = True 这个是改变宽度,自动符合
xlSheet.Range(SA).BorderAround , xlThin, , vbBlack 这个就是边框了




都是很基础的东西,找本书看看就好了


[解决办法]
这些代码不看也罢,除非你必须给它改良:
RangeCells = "A " + RTrim(LTrim(Str(1))) + ": " + "H " + RTrim(LTrim(Str(1)))
这句就是RangeCells = "A1:H1 ",1又不是i,这么写岂不故弄玄虚。
Set aRang = xlSheet.Range(RangeCells)
---
上面两句都去掉,直接这样写:
Set aRang = xlSheet.Range( "A1:H1 ") '指定范围:从A1到H1的单元格。
aRang.Select '选择指定范围内所有单元格。

再看下面的I,K,M,N…… 我已经毫无耐心去看了,搭眼看不出来变量的含义,这样的代码只能扔。


这个就是说定位为SA的cell的一些操作

xlSheet.Range(SA).Value = Lv_Name.ColumnHeaders(I + 1).Text ’下面着三句,这个就是给里面内容赋值
xlSheet.Range(SA).ShrinkToFit = True 这个是改变宽度,自动符合
xlSheet.Range(SA).BorderAround , xlThin, , vbBlack 这个就是边框了

热点排行
Bad Request.