さまざまな列を持つテーブルがあり、そのうちの1つは週番号を持ち、他のストアはhh:mm:私はこれらの両方を配列に入れようとしているので、簡単にコンパイルすることはできますが、文字列として配列に格納することはできません。時間は "00:10:22"のようになります。 0.3242342342などVBA Excel - 範囲と配列の列には時間と数値が含まれています。ループなしで文字列に変換するもの
週の列は= IFERROR(VALUE([@ [DC week]])、 "") であり、時間列はIFERROR(IF(LEFT(P2,1)= " - "、-TIMEVALUE(" 00:00 ")、TIMEVALUE(P2))、" ")
これは私が持っているものですが、配列はba 。二重のようCK、
Dim maxtime As String
Dim tblLastRow As Integer
Dim Arr As Variant
Dim uniquesArray As Variant
Dim lastRow As Long
With Sheets("Raw2")
tblLastRow = .Cells(.Rows.Count, "A").End(xlUp).row
.Columns("X:X").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("AE1"), Unique:=True
lastRow = .Cells(.Rows.Count, "AE").End(xlUp).row
uniquesArray = .Range("AE2:AE" & lastRow)
.Columns("AE").ClearContents
.Columns("X:Y").Copy
.Columns("AE").PasteSpecial xlValues
Arr = .Range("AE2:AF" & tblLastRow)
End With
Sheet20.Columns("A:B").ClearContents
Sheet20.Cells(1, 1) = "Week"
Sheet20.Cells(1, 2) = "Time To Abandon"
For a = 1 To UBound(uniquesArray)
maxtime = ""
For i = 1 To UBound(Arr, 1)
If Arr(i, 1) = uniquesArray(a, 1) Then
If Arr(i, 2) > maxtime Then maxtime = Arr(i, 2)
End If
Next i
Sheet20.Cells(a + 1, 1) = uniquesArray(a, 1)
Sheet20.Cells(a + 1, 2) = maxtime
Next a
は、あなたがそれらを、Excelで見てみたいどのようにフォーマットされている、あなたは '編曲= .Range(&tblLastRow "AF AE2")を変更することができるはずですAE2:AF "&tblLastRow)。テキスト'。あるいは、 'Format(Arr(i、2)、" hh:mm:ss ")'を使って変換することもできます。 – YowE3K