我的打印代码如下:
   Dim old_width as Integer 
  MSFlexGrid_Name.width=printer.width 
   Printer.PaintPicture MSFlexGrid_Name.Picture, 0, 0 
   Printer.EndDoc
 MSFlexGrid_Name.width=old_width
另外,谁有好方法打印MSHFLEXGRID里的内容阿??

解决方案 »

  1.   

    你是不是重置了mshflexgrid,没有往里面写数据啊
    可以倒入到excel打印啊
    用vba编程,不难啊
      

  2.   

    If MsgBox("你是否要打印?" & vbCrLf & "如果打印,请等待打印作业.....", 4 + 32 + 256, "打印") = vbYes Then
                    Printer.ScaleMode = vbCentimeters
                    Printer.PaintPicture MSHFlexGrid1.Picture, 2, 2
                    Printer.EndDoc
                End If
    我这样没有啊你试一下
      

  3.   

    Dim old_width as Integer 
    old_width=MSFlexGrid_Name.width '******here******
    MSFlexGrid_Name.width=printer.width 
    Printer.PaintPicture MSFlexGrid_Name.Picture, 0, 0 
    Printer.EndDoc
    MSFlexGrid_Name.width=old_width
      

  4.   

    改一下你的程序
    Dim old_width as Integer 
      '记录下表格宽度
      old_width=MSFlexGrid_Name.width  MSFlexGrid_Name.width=printer.width 
     Printer.PaintPicture MSFlexGrid_Name.Picture, 0, 0 
      Printer.EndDoc  MSFlexGrid_Name.width=old_width--------------------这样打印最好:
    Printer.PaintPicture MSFlexGrid1.Picture, 2, 2
    Printer.EndDoc
      

  5.   

    改一下你的程序
    Dim old_width as Integer 
      '记录下表格宽度
      old_width=MSFlexGrid_Name.width  MSFlexGrid_Name.width=printer.width 
     Printer.PaintPicture MSFlexGrid_Name.Picture, 0, 0 
      Printer.EndDoc  MSFlexGrid_Name.width=old_width--------------------这样打印最好:
    Printer.PaintPicture MSFlexGrid1.Picture, 2, 2
    Printer.EndDoc
      

  6.   

    对啊,加上下边两句控制宽度就可以解决。
    old_width=MSFlexGrid_Name.width
    MSFlexGrid_Name.width=old_width
    但是,如何将它设置为横向打印?
      

  7.   

    我的程序里的,没有没有改,你看看理解理解吧
      Dim xlSheet() As excel.Worksheet
      Dim xlApp As excel.Application
      Dim xlbook As excel.Workbook
      Dim strSource, strDestination As String
      Set xlApp = CreateObject("Excel.Application")
      strSource = App.Path & "\报表模板\" & M_name & ".xls"
      strDestination = App.Path & "\报表模板\Temp.xls"
      FileCopy strSource, strDestination
      xlApp.Workbooks.Open (strDestination)  Set xlbook = xlApp.Workbooks.Open(strDestination)
      With xlApp
        .CommandBars(1).Enabled = False
    '    .DisplayFullScreen = True
        .Sheets(M_tital).Activate
        .Sheets(M_tital).Range("A1").Select
        For k = 1 To m_count      For i = 1 To M_fnnum
            For j = 1 To Linenum
              .Sheets(M_tital).Cells(3, 4) = Format(DTPicker1.Value, "yyyy年mm月dd日")
              .Sheets(M_tital).Cells((i + 2 * (k + 1)), (j + 3)) = M_data(k, i, j)
            Next j
          Next i
        Next k
      End With
      Worksheets(M_tital).Range("A1:AE37").Locked = False
      xlbook.Save
      xlApp.Visible = True