vba粘贴sheet1值并保留原始源颜色,但不保留字体和其他格式...?

时间:2019-01-16 15:13:00

标签: excel vba

我最多有6个单元,其潜在数据来自6个不同的地方。我正在尝试只将前三个单元格的数据传输到具有原始SHEET1颜色但不包含FORMAT的表中

 Sub Transfer_Data()


Dim i As Long, j As Long

j = 1

For i = 1 To 6
    If Sheets("Sheet1").Cells(i, 1).Value <> "" Then
        Sheets("Sheet2").Cells(j, 1).Value = Sheets("Sheet1").Cells(i, 1).Value
        j = j + 1
    End If

If j > 3 Then Exit For
Next i

End Sub

会发生什么情况,当我尝试保留sheet1时会显示sheet2格式和颜色。 我也尝试过这个,但是它保持了sheet1格式.....

Sub Transfer_Data()

Dim i As Long, j As Long

j = 1

For i = 1 To 6
    If Sheets("Sheet1").Cells(i, 1).Value <> "" Then
        Sheets("Sheet1").Cells(i, 1).Copy
        Sheets("Sheet2").Cells(j, 1).PasteSpecial xlPasteFormats
        Sheets("Sheet2").Cells(j, 1).PasteSpecial xlPasteValues
        j = j + 1
    End If

If j > 3 Then Exit For
Next i
Application.CutCopyMode = False
End Sub

1 个答案:

答案 0 :(得分:1)

您还可以让VBA将格式应用于单元格:

public static void main(String[] args) {
    String s = "8.1.009.125";
    String[] strings = s.split("\\.");
    for (String string : strings) {
        if (string.startsWith("0")) {
            string = "0." + string.substring(1);
        }
        System.out.println(Double.valueOf(string));
    }

}

请注意,这仅在给定单元格中所有文本的颜色相同时才有效