在Excel VBA中复制和粘贴多个单元格

时间:2014-05-26 13:58:38

标签: excel vba excel-vba

请点击Excel VBA新手并寻求指导。

我在Excel中有以下情况。今天是今天的约会。工作表有365列,一年中的每一天。每天我想运行一个宏,它只会选出非零值,然后复制它们,然后将它们粘贴到同一工作簿中的另一个工作表中。

工作表A

TodayDate
0
45
0
12
6
0
29

因此,这一天的结果将是:

工作表B

TodayDate
45
12
6
29

注意:非零条目的数量是可变的。在特定日期可以为零,也可以是十几个或更多。此外,哪个感兴趣的栏目也会有所不同,主要是因为闰年以及我需要在一年中的任何特定日子运行它。

我一直在四处寻找并尝试不同的东西,但没有发现任何可以根据需要完全起作用的东西。

1 个答案:

答案 0 :(得分:0)

这使用 Sheet1 Sheet2:

Sub GrabData()
    Dim d As Date, i As Long, N As Long
    d = Date
    Dim j As Long, K As Long, s1 As Worksheet, s2 As Worksheet
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    For i = 1 To 365
        If s1.Cells(1, i) = d Then Exit For
    Next i
    N = s1.Cells(Rows.Count, i).End(xlUp).Row
    K = 1
    For j = 1 To N
        If s1.Cells(j, i).Value <> 0 Then
            s2.Cells(K, 1).Value = s1.Cells(j, i).Value
            K = K + 1
        End If
    Next j
End Sub