急急急!!怎样在excel添加一个工作表?在线等....

tsh1979 2003-12-07 02:01:17
窗体里面有两个msflexgrid,要导出到excel的两个工作表sheet1,sheet2.可excel默认的只有一个,怎么解决?代码如下:

Dim Rs_Data As New ADODB.Recordset
Dim Irowcount As Integer
Dim Icolcount As Integer

Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlBook1 As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlQuery As Excel.QueryTable

With Rs_Data
If .State = adStateOpen Then
.Close
End If
.ActiveConnection = cn
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.Source = strOpen
.Open
End With
With Rs_Data
If .RecordCount < 1 Then
MsgBox ("没有记录!")
Exit Sub
End If
Irowcount = .RecordCount '记录总数
Icolcount = .Fields.Count '字段总数
End With

Set xlApp = CreateObject("Excel.Application")
Set xlBook = Nothing
Set xlSheet = Nothing
Set xlBook = xlApp.Workbooks().Add
xlApp.Workbooks.Add
xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add
Set xlSheet = xlBook.Worksheets("sheet2")
xlApp.Visible = True

'添加查询语句,导入EXCEL数据
Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))

With xlQuery
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
End With

xlQuery.FieldNames = True '显示字段名
xlQuery.Refresh
...全文
1708 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
programkitty 2003-12-08
  • 打赏
  • 举报
回复
同意楼主
taosihai1only 2003-12-08
  • 打赏
  • 举报
回复
if xlBook.Worksheets.Count <2 Then
Set xlSheet2 = xlBook.Worksheets.Add
else
Set xlSheet2 = xlBook.Worksheets(2)
end if
另外:
其实也可以在excel设置中解决.
工具->选项->常规->新工作薄中的工作表表数 设为3
simanh 2003-12-07
  • 打赏
  • 举报
回复
xlBook1.workSheets.add
hhjjhjhj 2003-12-07
  • 打赏
  • 举报
回复
呵还有
已有new了(Dim xlApp As New Excel.Application)
这句就不要了(Set xlApp = CreateObject("Excel.Application"))
hhjjhjhj 2003-12-07
  • 打赏
  • 举报
回复
..............
Dim xlSheet1 As Excel.Worksheet
Dim xlQuery1 As Excel.QueryTable
Dim xlSheet2 As Excel.Worksheet
Dim xlQuery2 As Excel.QueryTable
.........
........
Set xlApp = CreateObject("Excel.Application")
'Set xlBook = Nothing
'Set xlSheet = Nothing
Set xlBook = xlApp.Workbooks.Add
'xlApp.Workbooks.Add
'xlApp.Workbooks.Add
Set xlSheet1 = xlBook.Worksheets(1)
'=======
if xlBook.Worksheets.Count <2 Then
Set xlSheet2 = xlBook.Worksheets.Add
else
Set xlSheet2 = xlBook.Worksheets(2)
end if
'=======
xlApp.Visible = True
Set xlQuery1 = xlSheet1.QueryTables.Add(Rs_Data, xlSheet1.Range("a1"))
.........
........
Set xlQuery2 = xlSheet2.QueryTables.Add(Rs_Data, xlSheet2.Range("a1"))
.......
.........
JoAiron 2003-12-07
  • 打赏
  • 举报
回复
在excel里录制宏就可以得到代码了
选择工具----宏-----录制新宏

录制结束后,停止录制

工具----宏-----vb编辑器

就可以看到刚才的动作所对应的代码了
JoAiron 2003-12-07
  • 打赏
  • 举报
回复

Sheets.Add
Sheets("Sheet4").Select
Sheets("Sheet4").Name = "12233"

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧