这个还不简单,先将数据全部导入到EXCEL中,然后在EXCEL中录制一个宏,设置打印标题,就是前面两行,然后将这个宏做为程序的模块。当程序打开EXCEL文档时就调用录的宏就可以实现这个功能了
解决方案 »
- VB Len
- VertScrollBar滚动条 如何控制 向上翻页 向下翻页 功能
- 应聘时候遇到的一个问题,大家看看,因为不懂,我也不知道发在哪个板块好
- 我用VB语句启动AutoCAD时为什么总提示:“Error loading dialog control file”?
- 高手请进,100分全给!
- 请教:怎样模拟COM口输入数据
- 怎么指定Commondialog的"另存为"中要存储的对象,例如:我要把c:\a.mdb存到d:\去,怎样指定"c:\a.mdb"?
- 在datagrid控件中,要使一列成为check框的形式,是哪个属性?求教!
- VC转换到VB的问题! 急!!!
- 不会吧,我已经问了四次啦!
- 在VB中如何读取Access2000编写的mdb数据库?
- 简单的问题:如何把datagrid和ADO Recordset对象连接起来
Dim strFileName As String
strFileName = "C:\DataFile\Result.xls"
Set vbExcel = CreateObject("Excel.Application")
With vbExcel
.Visible = True
'打开Excel的workbook
.Workbooks.Open FileName:=strFileName, ReadOnly:=True
.Range("A11").Select
.ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
.Range("A21").Select
.ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
End With
上面这段角本会在11、21行前插入分页符,你只要在每页前面显示标题即可
Set vbExcel = Nothing
我是将表格放在Picture控件上,还包括滚动条。
scadatab是窗体,我已经用Form1替代Private Sub print_tab_Click()
Dim old_y As Long
Dim old_x As Long
Dim old_h_value As Boolean
Dim old_v_value As Boolean
Dim old_py As Long
Dim old_px As LongDim my_str As String
Dim X As Long
Dim Y As Long
Dim my_s_x As Long
Dim my_s_y As Long
Dim my_e_x As Long
Dim my_e_y As LongOn Error Resume Nextold_y = Form1.Height
old_x = Form1.Width
old_v_value = VScroll1.Visible
old_h_value = HScroll1.Visible
old_py = Picture2.Top
old_px = Picture2.LeftGrid1.Visible = False
VScroll1.Visible = False
HScroll1.Visible = FalsePicture2.Top = 0
Picture2.Left = 0
Y = 0
For i = 0 To Grid1.Rows - 1
Y = Y + Grid1.RowHeight(i) + (Screen.TwipsPerPixelY)
Next iX = 0
For i = 0 To Grid1.Cols - 1
X = X + Grid1.ColWidth(i) + (Screen.TwipsPerPixelX)
Next i
Form1.Height = Y + 1800
Form1.Width = X + 500my_s_x = Grid1.Left
my_e_x = Grid1.Left + X
my_s_y = Grid1.Top
my_e_y = Grid1.Top + 1
Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(0), BFmy_s_x = Grid1.Left - 1
my_e_x = Grid1.Left
my_s_y = Grid1.Top
my_e_y = Grid1.Top + Y - 1
Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(0), BFmy_s_x = Grid1.Left + X
my_e_x = Grid1.Left + X + 1
my_s_y = Grid1.Top
my_e_y = Grid1.Top + Y - 1
Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(0), BF
my_s_x = Grid1.Left
my_e_x = Grid1.Left + X
my_s_y = Grid1.Top + Y
my_e_y = Grid1.Top + Y + 1
Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(0), BF
my_s_x = Grid1.Left
my_s_y = Grid1.Top
my_e_x = Grid1.Left + X + 1
my_e_y = Grid1.Top + Y + 1
For i = 0 To Grid1.Cols - 1
my_s_x = (CLng((my_s_x + Grid1.ColWidth(i) + (Screen.TwipsPerPixelX)) / 15)) * 15
Picture2.Line ((my_s_x), (my_s_y))-((my_s_x), (my_e_y)), QBColor(0), BF
Next imy_s_x = Grid1.LeftFor i = 0 To Grid1.Rows - 1
my_s_y = my_s_y + Grid1.RowHeight(i) + (Screen.TwipsPerPixelY)
Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_s_y)), QBColor(0), BF
Next imy_s_y = Grid1.Top + (15 * 5)For i = 0 To Grid1.Rows - 1
Grid1.Row = i
my_s_x = Grid1.Left + (15 * 5)
For j = 0 To Grid1.Cols - 1
Grid1.Col = j
my_str = Grid1.Text
If Len(my_str) <> 0 Then
Picture2.CurrentX = my_s_x
Picture2.CurrentY = my_s_y
Picture2.Print my_str
Else
End If
my_s_x = my_s_x + Grid1.ColWidth(j) + (Screen.TwipsPerPixelX)
Next j
my_s_y = my_s_y + Grid1.RowHeight(i) + (Screen.TwipsPerPixelY)Next i
Form1.PrintFormmy_s_x = Grid1.Left
my_s_y = Grid1.Top
my_e_x = Grid1.Left + X + 1
my_e_y = Grid1.Top + Y + 1Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(15), BFGrid1.Visible = True
VScroll1.Visible = old_v_value
HScroll1.Visible = old_h_value
Picture2.Top = old_py
Picture2.Left = old_pxForm1.Height = old_y
Form1.Width = old_xEnd Sub不知道你能不能用上
pawly(pawly) :
你的意思是然后在每一页的开始地方插入两行标题数据吗???这样是好,但是我想,这样可能在看数据的时候突然在一个文档中间有标题信息不是很好啊!!!!
现在开始给分!!!!