|
Sub test()
Dim i, m, k, n, irow As Integer
Dim ar As Variant
Dim ws As Worksheet
Dim rng As Range
Dim zoom#
zoom = 2
Dim Chartobj As ChartObject
Dim p As String
p = ThisWorkbook.Path & "\"
ThisWorkbook.Sheets("a").Activate
Set ws = ThisWorkbook.Sheets.Add(after:=Sheets(Sheets.Count))
ws.Name = "过渡"
ar = ThisWorkbook.Sheets("A").Range("a1:o" & Sheets("A").[b65536].End(xlUp).Row + 1)
ar(UBound(ar), 2) = "HJ"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = 3 To UBound(ar)
With ThisWorkbook.Sheets("过渡")
If ar(i, 2) <> "HJ" Then
If InStr(ar(i, 1), 1) > 0 Then
m = m + 1
ThisWorkbook.Sheets("a").Cells(i, UBound(ar, 2)) = m
If .[a1] = "" Then
ThisWorkbook.Sheets("A").Range("a1:n2").Copy
.[a1].PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.[a1].PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Else
irow = .[a65536].End(xlUp).Row
ThisWorkbook.Sheets("A").Range("a1:n2").Copy
.Cells(irow + 2, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Cells(irow + 2, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
irow = .[a65536].End(xlUp).Row
ThisWorkbook.Sheets("a").Cells(i, 1).Resize(1, UBound(ar, 2)).Copy
.Cells(irow + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Cells(irow + 1, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
End If
End With
If ar(i, 2) = "HJ" Then
ThisWorkbook.Sheets("过渡").Columns.AutoFit
n = n + 1
Set rng = ThisWorkbook.Sheets("过渡").UsedRange
rng.CopyPicture xlPrinter, xlPicture
With ThisWorkbook.Sheets("过渡").ChartObjects.Add(0, 0, rng.Width * zoom, rng.Height * zoom).Chart
.Parent.Select
.Paste
.Export p & "图片" & n & ".png", "png"
.Parent.Delete
End With
ThisWorkbook.Sheets("过渡").Activate
ThisWorkbook.Sheets("过渡").[a1].Resize(100, UBound(ar, 2)).Clear
End If
Next
Application.CutCopyMode = False
ThisWorkbook.Sheets("过渡").Delete
Application.ScreenUpdating = False
Application.DisplayAlerts = False
MsgBox "ok"
End Sub
|
|