各位高手老手 请指点关于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 这个就是边框了