返回列表 上一主題 發帖

[發問] 若儲存格內容為0就整列不顯示

請仔細檢查附件中最後3欄結果與說明上的算法並不相符。

TOP

為何前幾欄取自表1第10列,而後面的取第13列?

TOP

j欄公式為='1'!M10+'1'!L10,說明為''此欄數值為工作表1(第m欄減第l欄)…如儲存格內式子但當此欄數值為零時就整列不顯示''
這又是怎麼回事?

TOP

Sub yy()
Dim rng, arr, i%, j%, k%
With Sheets("1")
rng = .Range(.[c10], .[m83].End(3))
End With
ReDim arr(1 To UBound(rng), 1 To 10)
For i = 1 To UBound(rng)
If rng(i, 11) - rng(i, 10) <> 0 Then
k = k + 1
For j = 1 To 6
arr(k, j) = rng(i, j)
Next
arr(k, 8) = rng(i, 8) - rng(i, 6)
arr(k, 9) = arr(k, 8) - arr(k, 6)
arr(k, 10) = rng(i, 11) + rng(i, 10)
End If
Next
Sheets("2").UsedRange = ""
Sheets("2").[a5].Resize(k, 10) = arr
End Sub

TOP

If rng(i, 11) - rng(i, 10) <> 0 Then
這一行視你要加或減

TOP

這個不是動態陣列,變數可設在任何一維。
因為你不習慣transpose,所以放棄動態陣列,這樣你可能較容易吸收!

TOP

固定陣列是以dim宣告
那是在事先知道大小的情況。
但是我們是在執行到rng = .Range(.[c10], .[m83].End(3))
時才知道須要的大小(雖然不是準確)
這時就要重新定義他的大小,所以用redim!

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題