请点击Excel VBA新手并寻求指导。
我在Excel中有以下情况。今天是今天的约会。工作表有365列,一年中的每一天。每天我想运行一个宏,它只会选出非零值,然后复制它们,然后将它们粘贴到同一工作簿中的另一个工作表中。
工作表A
TodayDate
0
45
0
12
6
0
29
因此,这一天的结果将是:
工作表B
TodayDate
45
12
6
29
注意:非零条目的数量是可变的。在特定日期可以为零,也可以是十几个或更多。此外,哪个感兴趣的栏目也会有所不同,主要是因为闰年以及我需要在一年中的任何特定日子运行它。
我一直在四处寻找并尝试不同的东西,但没有发现任何可以根据需要完全起作用的东西。
答案 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