插入和打印文具

时间:2012-01-05 09:37:11

标签: excel excel-vba vba

我现在正在尝试这几个小时,但我无法弄清楚如何在Excel 2010中的背景中获取图像作为信纸。在所有方面,我似乎无法将其从从左上角到右下角。

我可以用宏来完成这个,还是有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

请参阅microsoft link

引用
“在Excel中,您可以将图片用作工作表背景仅用于显示目的。工作表背景不会打印,不会保留在单个工作表中或保存为网页的项目中。仅当您将整个工作簿发布为网页时  重要由于未打印纸张背景,因此不能将其用作水印。但是,您可以通过在页眉或页脚中插入图形来模仿水印。“

答案 1 :(得分:0)

这段代码可以让你选择一张图片(你已经可以选择一张并调整这段代码),它会调整图片大小以适应printarea并将其对齐在printarea的左上角:

Option Explicit

Private Sub Test()
    Dim PicLocation As String
    Dim MyRange As Range, TargetCell As Range

    Set MyRange = Range(ActiveSheet.PageSetup.PrintArea)
    Set TargetCell = MyRange.Cells(1, 1)

    PicLocation = Application.GetSaveAsFilename("C:\", "Image Files (*.jpg),*.jpg", , "Specify Image Location")

    If PicLocation <> "False" Then
        ActiveSheet.Pictures.Insert(PicLocation).Select
    Else
        Exit Sub
    End If

    With Selection.ShapeRange
        .LockAspectRatio = msoTrue
        If .Width > .Height Then
            .Width = MyRange.Width
            If .Height > MyRange.Height Then .Height = MyRange.Height + ActiveSheet.PageSetup.HeaderMargin + ActiveSheet.PageSetup.BottomMargin
        Else
            .Height = MyRange.Height
            If .Width > MyRange.Width Then .Width = MyRange.Width + ActiveSheet.PageSetup.LeftMargin + ActiveSheet.PageSetup.RightMargin
        End If
        .Left = TargetCell.Left - ActiveSheet.PageSetup.LeftMargin
        .Top = TargetCell.Top - ActiveSheet.PageSetup.HeaderMargin
    End With

    With Selection
        .Placement = xlMoveAndSize
        .PrintObject = True
    End With
End Sub