Board logo

標題: [發問] 請問如何條件式判斷(空值)及條件式複製 [打印本頁]

作者: aseeddie    時間: 2011-5-18 02:44     標題: 請問如何條件式判斷(空值)及條件式複製

[attach]6245[/attach]請問如何條件式判斷(空值)及條件式複製

假設A欄位有200列,且資非連續性分佈

如何判斷儲存格是否為空值

如果不是則保留原數值

如果是"空值"則複製上一格儲存格數值

如附件:
自動判斷A1有數值保留不動
判斷A2為空值,則複製上一格儲存格的資料
判斷A3為空值,則複製上一格儲存格的資料
以此類推,共200列

請高手教導,萬分感謝
作者: aseeddie    時間: 2011-5-18 04:27

想了一個晚上終於已解出

請個位高手參考看看

是否有更高級的解法


Sub macro1()

Dim i As Integer

For i = 1 To 200

    If Cells(i, 1) = "" Then
      
    Cells(i, 1) = Cells(i, 1).Offset(-1, 0)
   
    End If
   
Next i

   
End Sub
作者: GBKEE    時間: 2011-5-18 08:45

回復 2# aseeddie
你的程式碼是最簡短的,但資料量大時會較費時的
  1. Sub Ex1()
  2.     Dim Rng As Range
  3.     Set Rng = Range("A1")
  4.     Do
  5.         If Application.CountA(Range(Rng, Rng.End(xlDown).Offset(-1))) = 1 Then
  6.             If Rng.End(xlDown).Row = Rows.Count Then
  7.                 Range(Rng, Cells(200, "a")) = Rng
  8.                 Exit Do
  9.             End If
  10.             Range(Rng, Rng.End(xlDown).Offset(-1)) = Rng
  11.        End If
  12.         Set Rng = Rng.End(xlDown)
  13.     Loop
  14. End Sub
複製代碼
  1. Sub Ex2()
  2.     Dim Rng As Range, Ar(), i%
  3.     Set Rng = Range("A1")
  4.     Ar = Rng
  5.     For i = 2 To UBound(Ar)
  6.        If Ar(i, 1) = "" Then Ar(i, 1) = Ar(i - 1, 1)
  7.     Next
  8.     Rng = Ar
  9. End Sub
複製代碼

作者: Hsieh    時間: 2011-5-18 09:01

編輯/到/特殊/空格
    With Range([A1], [A65536].End(xlUp))
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
    End With
作者: GBKEE    時間: 2011-5-18 13:24

編輯/到/特殊/空格
    Hsieh 發表於 2011/5/18 09:01

唉 早上起來,還沒睡飽!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)