VBA将行粘贴为图像

时间:2016-10-05 14:42:21

标签: excel vba excel-vba

enter image description here只需快速了解一下粘贴问题。我有一个脚本将单个行导出到新创建的工作簿中。但是,问题是粘贴的值是图像的形式。此外,将跳过评论。我使用相同的代码粘贴到同一工作簿的其他工作表中,没有问题。

我似乎无法找到原因。任何帮助将不胜感激。

由于

Private Sub DC_1Month_Button_Click()
'Searches for crews working on MFDC (7343) and exports a new spreadsheet looking 3 weeks ahead for each person

If MsgBox("Export DC individual schedules?") = vbNo Then
    Exit Sub
End If

On Error GoTo CleanFail

Dim nowCol As Integer, lastCol As Integer, endCol As Integer, crewRow As Integer
Dim masterSheet As Worksheet, newExcel As Object, newBook As Workbook, newSheet As Worksheet
Dim startRow As Integer, endRow As Integer
Dim currentName As String, currentProject As String

startRow = 3
endRow = UsedRange.Row - 1 + UsedRange.Rows.count
lastcoln = UsedRange.Column - 1 + UsedRange.Columns.count
Set masterSheet = ThisWorkbook.Worksheets("Master Schedule")

'Find columns for today and date 3 weeks after
nowCol = Range(Cells(2, 1), Cells(2, lastcoln)).Find(what:=Month(Date) & "/" & Day(Date) & "/" & Year(Date)).Column
endCol = Range(Cells(2, 1), Cells(2, lastcoln)).Find(what:=Month(DateAdd("d", 30, Date)) & "/" & Day(DateAdd("d", 30, Date)) & "/" & Year(DateAdd("d", 30, Date))).Column

'Disable screen flashing while doing copying and exports
Application.ScreenUpdating = False

'Loop through crew members
For i = 3 To endRow
    'Store current row's values
    currentName = Replace(ActiveSheet.Cells(i, 2).Value, "SA: ", "")
    currentProject = ActiveSheet.Cells(i, 3).Value

    'Search the value from the Project column for the MFDC project number
    If InStr(1, currentProject, "7343") > 0 Then

    'Load schedule template
    Set newExcel = CreateObject("Excel.Application")
    newExcel.DisplayAlerts = False
    newExcel.Workbooks.Open "\\VALGEOFS01\SurveyProjectManagers\304Schedule\Templates\DC_3Week_Template.xlsx"
    Set newBook = newExcel.Workbooks(1)
    Set newSheet = newBook.Worksheets(1)

    'Copy and paste header rows
    masterSheet.Range(masterSheet.Cells(1, nowCol), masterSheet.Cells(2, endCol)).Copy 'Destination:=newSheet.Range("A1")
    Application.Wait (Now + TimeValue("0:00:01"))
    newSheet.Range(newSheet.Cells(1, 6), newSheet.Cells(1, endCol - 1)).PasteSpecial xlPasteValuesAndNumberFormats
    Application.CutCopyMode = False

    'Copy and paste crew member's location
    masterSheet.Range(masterSheet.Cells(i, 2), masterSheet.Cells(i, 6)).Copy 'Destination:=newSheet.Range("A3")
    Application.Wait (Now + TimeValue("0:00:01"))
    newSheet.Range("A3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Application.CutCopyMode = False

    'Copy schedule data for crew member
    masterSheet.Range(masterSheet.Cells(i, nowCol), masterSheet.Cells(i, endCol)).Copy
    Application.Wait (Now + TimeValue("0:00:01"))
    newSheet.Cells(3, 6).PasteSpecial Paste:=xlPasteAll
    Application.CutCopyMode = False

    'Save individual's schedule
    With newBook
        .Title = currentName & " MFDC Schedule"
        .SaveAs Filename:="\\VALGEOFS01\SurveyProjectManagers\304Schedule\MFDC Individual Schedules\" & currentName & " MFDC Schedule " & Format(Date, "yymmdd") & ".xlsx", AccessMode:=xlExclusive, ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges
        .Close (True)
    End With

    End If
Next i

CleanExit:
    MsgBox "Export complete"
    'Restore normal screen updating
    Application.ScreenUpdating = True
    Exit Sub

CleanFail:

    If Err.Number <> 0 Then
        Msg = "Error # " & Str(Err.Number) & " was generated by " & Err.Source & Chr(13) & Err.Description
        MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
    End If
    Resume CleanExit
    Resume

End Sub

0 个答案:

没有答案