Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA:Excel如何复制,包括格式和间距_Excel_Vba - Fatal编程技术网

VBA:Excel如何复制,包括格式和间距

VBA:Excel如何复制,包括格式和间距,excel,vba,Excel,Vba,现在,我这样做是为了将一行从一张图纸复制到另一张图纸,并将其插入末尾: Sheets("Monthly").Range("A1").EntireRow.Copy Destination:= _ Sheets(Name).Range("A" & rows.Count).End(xlUp).Offset(1) 但这不会复制任何格式/单元格间距。在vba中可以这样做吗 使用宏记录器将为您提供其他格式的语法 Range("A1").NumberF

现在,我这样做是为了将一行从一张图纸复制到另一张图纸,并将其插入末尾:

            Sheets("Monthly").Range("A1").EntireRow.Copy Destination:= _
            Sheets(Name).Range("A" & rows.Count).End(xlUp).Offset(1)

但这不会复制任何格式/单元格间距。在vba中可以这样做吗

使用宏记录器将为您提供其他格式的语法

Range("A1").NumberFormat = "General"

一个解决方法的例子

Sub Copy()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")

  ws.Range("A1").EntireColumn.Copy

    With ws.Range("G2").EntireColumn
        .PasteSpecial Paste:=xlPasteFormats
        .PasteSpecial Paste:=xlPasteValues
    End With

End Sub
有一百万种方法可以做到这一点


使用宏记录器将为您提供其他格式的语法

Range("A1").NumberFormat = "General"

一个解决方法的例子

Sub Copy()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")

  ws.Range("A1").EntireColumn.Copy

    With ws.Range("G2").EntireColumn
        .PasteSpecial Paste:=xlPasteFormats
        .PasteSpecial Paste:=xlPasteValues
    End With

End Sub
有一百万种方法可以做到这一点

复制不会复制格式。也许你的格式不是你想的那样。我不知道单元格间距是什么意思,但如果它是列宽,那么Copy不会复制它。你必须明确地设置它,比如

For i = 1 to rSrce.Cells.Count
    rDest.Cells(i).EntireColumn.ColumnWidth = rSrce.Cells(1).EntireColumn.ColumnWidth
Next i
复制不会复制格式。也许你的格式不是你想的那样。我不知道单元格间距是什么意思,但如果它是列宽,那么Copy不会复制它。你必须明确地设置它,比如

For i = 1 to rSrce.Cells.Count
    rDest.Cells(i).EntireColumn.ColumnWidth = rSrce.Cells(1).EntireColumn.ColumnWidth
Next i

我认为你的行为不规范。您使用的是哪个Excel版本?我得到Range类的Copy方法失败:@PortlandRunnerI我认为您没有遇到标准行为。您使用哪个Excel版本?我获取范围类的复制方法失败:@PortlandRunnerI获取范围类的复制方法失败。知道吗?在我的范围定义的末尾。看起来您找到了答案,但我编辑了我的,作为将来的参考。虽然我猜更复杂。我得到的范围类的复制方法失败了。在我的范围定义的末尾。看起来你找到了答案,但我编辑了我的,作为将来的参考,作为另一种方式。虽然我觉得更复杂。啊,我以为列宽是格式的一部分,谢天谢地,我不知道为什么不是。啊,我以为列宽是格式的一部分,谢天谢地,我不知道为什么不是。