将带格式的数据从一张纸粘贴到另一张纸上

问题描述 投票:0回答:1

我想将包含多个表格的 Excel 工作表中的一些表格复制到另一个空工作表。对于我使用的所有复制和粘贴方法,每次都会出现相同的错误消息。这些是源表中的单元格大小与目标工作表上的单元格不匹配。 “粘贴”方法每次都失败。

Sub Données_générales()

    Dim feuilleSource As Worksheet
    Dim derniereLigne As Long
    Dim debutTableauLigne As Long
    Dim nb_lignes_tableau As Long
    Dim nb_lignes_total As Long
    
    nb_lignes_total = 0
    
    Set feuilleSource = Workbooks("Indicateurs.xlsx").Sheets("Rapport1")
    
    Windows("Rapport2.xlsm").Activate
    Sheets("Tableaux1").Select
    
    derniereLigne = 20

    For i = 2 To derniereLigne
    
        Dim numero_tableau As Double
        numero_tableau = Val(Cells(i, 4).Value)
    
        nb_lignes_tableau = Cells(i, 8).Value
        
        debutTableauLigne = feuilleSource.Columns(1).Find(numero_tableau, LookIn:=xlValues, LookAt:=xlWhole).Row
        
        feuilleSource.Rows(debutTableauLigne).Resize(nb_lignes_tableau).Copy
        
        ThisWorkbook.Sheets("Données").Activate
        
        ThisWorkbook.Sheets("Données").Cells(nb_lignes_total + 1, 2).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        
        ThisWorkbook.Sheets("Données").Cells(nb_lignes_total + 1, 2).PasteSpecial Paste:=xlPasteFormats
        Application.CutCopyMode = False
        
        nb_lignes_total = nb_lignes_total + nb_lignes_tableau
    Next i
    
    
End Sub
excel vba
1个回答
0
投票
  • 下面的代码复制整行
feuilleSource.Rows(debutTableauLigne).Resize(nb_lignes_tableau).Copy
  • 下面的代码尝试将其粘贴到
    Sheets("Données")
    上的单元格中。但单元格位于 B 列。没有足够的空间来粘贴行。
  • 尝试
    Cells(nb_lignes_total + 1, 1)
ThisWorkbook.Sheets("Données").Cells(nb_lignes_total + 1, 2).PasteSpecial Paste:=xlPasteValues
  • 第二个
    PasteSpecial
    引发运行时错误1004,因为第一个
    Application.CutCopyMode = False
    清理了剪贴板。无法粘贴不应对某事..删除该代码行来修复它。
ThisWorkbook.Sheets("Données").Cells(nb_lignes_total + 1, 2).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

ThisWorkbook.Sheets("Données").Cells(nb_lignes_total + 1, 2).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False

  • 值得一读:

如何避免在 Excel VBA 中使用 Select

© www.soinside.com 2019 - 2024. All rights reserved.