请教各位大师帮忙!!!EXCEL用VBA按选定有数据的单元格并按选择区域打印,宏怎么编写!!!!

请教各位大师帮忙!!!EXCEL用VBA按选定有数据的单元格并按选择区域打印,宏怎么编写!!!!
要把这个表里的数据选择出来

然后选定有数据的单元格

最后按选择区域打印出来

谢谢

我这是自动找到最后一行的,符合你的要求,请试试。

Private Sub CommandButton1_Click()
Dim row_last As Integer
Dim temp1 As Integer
Selection.SpecialCells(xlCellTypeLastCell).Select
flag = False
Do While flag = False
    If ActiveCell.Row = 1 Then
        Exit Do
    End If
    Selection.End(xlToLeft).Select
        temp1 = IsEmpty(ActiveCell.Value)
    Selection.End(xlToRight).Select
        temp2 = IsEmpty(ActiveCell.Value)
    If temp1 = True And temp2 = True Then
        Selection.Offset(-1, 0).Select
    Else
        flag = True
        Exit Do
    End If
Loop
Selection.End(xlToLeft).Select
row_last = ActiveCell.Row
Range(Cells(1, 1), Cells(row_last, 1)).Select
   Selection.PrintOut Copies:=1
End Sub

 

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-08-19
Range("A1:A22").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

将以上代码粘贴至控件代码区。追问

Range("A1:A22").Select

但是有的时候,我的数据不止是到22行,有的时候会更多或更少,能不能自动判断有数据的行呢

追答

Range("A:A").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

追问

这样就把一整列选择了,能不能空白的地方不选择呢

追答

ActiveSheet.UsedRange.Select '选择活动工作表已使用区域
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True '打印

追问

谢谢

第2个回答  2014-08-19
可以实现自定义区域的打印 没问题

请教各位大师帮忙!!!EXCEL用VBA按选定有数据的单元格并按选择区域打印...
Private Sub CommandButton1_Click()Dim row_last As IntegerDim temp1 As IntegerSelection.SpecialCells(xlCellTypeLastCell).Selectflag = FalseDo While flag = False If ActiveCell.Row = 1 Then Exit Do End If Selection.End(xlToLeft).Select temp1 = IsEmpty(ActiveCell.Value) ...

在excel中如何用VBA对指定单元格区域打印,求具体代码
方法1:先用PrintArea 设置打印区域,然后再打印。这种设置将会保存到EXCEL文件中。比如:Worksheets("Sheet1").PageSetup.PrintArea = "$A$1:$C$5"Worksheets("Sheet1").PrintOut 方法2:直接打印指定区域,而不修改打印区域设置。比如 Worksheets("Sheet1").Range("$A$1:$C$5").PrintOut ...

EXCEL用VBA实现当某单元格满足指定条件时,打印指定区域?
If Cells(4, 3) <> "" Then ActiveSheet.PageSetup.PrintArea = "$B$4:$O$23"ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _IgnorePrintAreas:=False End If

如何使用VBA代码将EXCEL中一部分区域的单元格进行从小到大排序,并填...
因为截图不全,我这里先假设数据区为A1:F9, 填充区为H1:M9 代码如下:Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim arr1(1 To 54), arr2(1 To 54)Dim x, y, z As Integer Dim b, c Dim a As Variant z = 1 x = 1 y = 1 c = 1 For x = 1 To 9 For...

在Excel VBA写一段代码。根据当前单元格输入内容。提取数据列包含该单...
Dim lr As Long Dim ws As Worksheet Dim vcol, i As Integer Dim icol As Long Dim myarr As Variant Dim title As String Dim titlerow As Integer vcol = 1 Set ws = Sheets("Sheet1")lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row title = "A1:C1"titlerow = ws....

excel 如何用宏VBA实现输入完数据光标框从一个单元格跳转到下一行的单元...
Target As Range)If Target.Count > 1 Then Exit SubIf Target <> "" Then Cells(WorksheetFunction.Min(65536, Target.Row + 1), WorksheetFunction.Max(1, Target.Column - 1)).SelectEnd Sub右键SHEET1,查看代码。粘贴上面的代码。因为考虑到在第一列或第65536行的情况,所以用了MIN和MAX。

在excel里如何用vba实现选中一行的部分内容后,按enter后弹出inputbox...
Excel 本身只有 Worksheet.SelectionChange 事件稍微接近这个需求,但是选中连续区域后你按 Enter 你的选区是不会改变的,因此这个时候要捕捉键盘事件绝非易事。下面代码也只是在检测到选区仅为单个单元格时并且是按下 Enter 触发的才弹出 InputBox:Code in Sheet1:Option Explicit#If VBA7 Then Privat...

请高手帮忙:求一段excel vba 宏代码
Sub abc()Set x = Application.InputBox("请选择一个单元格", Type:=8)MsgBox "这个单元格的值是" & x.Value End Sub 运行后,会弹出一个输入窗口,用鼠标选择一个单元格后按“确定”按钮,代码会继续执行。

Excel vba中怎么实现执行一个宏命令,在当前鼠标选择单元格输入数据?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Target.Value = 5 End Sub 操作方法参考 Excel怎样解方程式

如何用vba实现在EXCEL固定区域坐标内点击单元格,显示日期控件?
首先从工具箱选择日期时间选择控件,并在工作表中绘制一个控件实例:DTPicker1 在工作表代码页写入如下代码 Private Sub Worksheet_SelectionChange(ByVal Target As Range)On Error Resume Next Set rag = Application.Intersect(Target, Range("E:E"))If rag Is Nothing Or rag.Address <> Target....

相似回答