从数组填充范围
Populating range from array
我有一个工作sheet更改事件,当 C、D 和 E 列中的三个相邻单元格填充任何值时运行,这会将输入日期放入单独的工作sheet以及从中捕获数据的 sheet 的名称。
然后代码应该计算一年中每一天这些日期的所有实例。
如果我单步执行数组,FrstLetter 会输出正确的值。
我挣扎的地方:然后它通过 application.transpose(myarray)
输出所述值,因为在循环时没有输入任何值。
With Sheets("Log")
For RowCount = 1 To 60
Select Case RowCount
Case 2, 7, 12, 17, 22, 27, 32, 37, 42, 47, 52, 57
LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
DateRange = WorksheetFunction.CountA(.Range("F" & RowCount & ":AJ" & RowCount))
For TypCount = 1 To 3
SheetIdent = .Cells(RowCount + TypCount, 5).Value
For ClmnNmbr = 1 To DateRange
ReDim AddrArr(DateRange)
AddrArr(ClmnNmbr) = .Cells(RowCount, ClmnNmbr + 5).Value
Set arrDates = .Range("A60:A" & LastRow)
Set shtNames = .Range("B60:B" & LastRow)
ReDim FrstLetter(DateRange)
FrstLetter(ClmnNmbr) = Application.CountIfs(arrDates, AddrArr(ClmnNmbr), shtNames, SheetIdent)
Worksheets("Log").Cells(TypCount + RowCount, ClmnNmbr + 5).Value = Application.Transpose(FrstLetter)
Next ClmnNmbr
Next TypCount
Case Else
End Select
Next RowCount
End With
我觉得我在转置的某个地方搞砸了,因为其他一切似乎都有效。
我明白了,不要试图将整个数组清空到一个单元格中就是答案! Application.Transpose(FrstLetter(ClmnNmbr))
添加 ClmnNmbr
确保在循环时每个单元格只输出一个值,因为单元格也在循环。
我有一个工作sheet更改事件,当 C、D 和 E 列中的三个相邻单元格填充任何值时运行,这会将输入日期放入单独的工作sheet以及从中捕获数据的 sheet 的名称。
然后代码应该计算一年中每一天这些日期的所有实例。
如果我单步执行数组,FrstLetter 会输出正确的值。
我挣扎的地方:然后它通过 application.transpose(myarray)
输出所述值,因为在循环时没有输入任何值。
With Sheets("Log")
For RowCount = 1 To 60
Select Case RowCount
Case 2, 7, 12, 17, 22, 27, 32, 37, 42, 47, 52, 57
LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
DateRange = WorksheetFunction.CountA(.Range("F" & RowCount & ":AJ" & RowCount))
For TypCount = 1 To 3
SheetIdent = .Cells(RowCount + TypCount, 5).Value
For ClmnNmbr = 1 To DateRange
ReDim AddrArr(DateRange)
AddrArr(ClmnNmbr) = .Cells(RowCount, ClmnNmbr + 5).Value
Set arrDates = .Range("A60:A" & LastRow)
Set shtNames = .Range("B60:B" & LastRow)
ReDim FrstLetter(DateRange)
FrstLetter(ClmnNmbr) = Application.CountIfs(arrDates, AddrArr(ClmnNmbr), shtNames, SheetIdent)
Worksheets("Log").Cells(TypCount + RowCount, ClmnNmbr + 5).Value = Application.Transpose(FrstLetter)
Next ClmnNmbr
Next TypCount
Case Else
End Select
Next RowCount
End With
我觉得我在转置的某个地方搞砸了,因为其他一切似乎都有效。
我明白了,不要试图将整个数组清空到一个单元格中就是答案! Application.Transpose(FrstLetter(ClmnNmbr))
添加 ClmnNmbr
确保在循环时每个单元格只输出一个值,因为单元格也在循环。