Board logo

標題: [發問] for循環簡化,請幫忙 [打印本頁]

作者: olisun    時間: 2010-8-12 09:50     標題: for循環簡化,請幫忙

一、請問怎麼簡化
二、為何都只有錄入Cells(51, n)?
Y = Sheets("成交客戶").Range("b65536").End(xlUp).Row
With Sheets("成交客戶")
   .Range("a" & Y + 1) = Sheets("日報表輸入").Range("e2").Value '日期
      For n = 3 To 7
        .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(41, n).Value
      If Sheets("日報表輸入").Cells(42, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(42, n).Value
               End If
      If Sheets("日報表輸入").Cells(43, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(43, n).Value
               End If
                  Next n
      If Sheets("日報表輸入").Cells(44, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(44, n).Value
               End If
      If Sheets("日報表輸入").Cells(45, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(45, n).Value
               End If
      If Sheets("日報表輸入").Cells(46, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(46, n).Value
               End If
                  Next n
      If Sheets("日報表輸入").Cells(47, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(47, n).Value
               End If
      If Sheets("日報表輸入").Cells(48, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(48, n).Value
               End If
      If Sheets("日報表輸入").Cells(49, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(49, n).Value
               End If
                  Next n
      If Sheets("日報表輸入").Cells(50, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(50, n).Value
               End If
      If Sheets("日報表輸入").Cells(51, n).Value <> "" Then
           .Cells(Y + 1, n - 1) = Sheets("日報表輸入").Cells(51, n).Value
                End If
                  Next n
作者: GBKEE    時間: 2010-8-12 10:19

回復 1# olisun
Y = Sheets("成交客戶").Range("b65536").End(xlUp).Row   
With Sheets("成交客戶")
   .Range("a" Y + 1) = Sheets("日報表輸入").Range("e2").Value '日期 語法錯誤
    .Range("a" &Y + 1) = Sheets("日報表輸入").Range("e2").Value '日期 正確

''''''''''''''''''''
Y是 b欄最後有資料的列號 帶入A欄 ->   .Range("a" &Y + 1)  這樣是你的用意嗎
簡化如下
  1. With Sheets("成交客戶")
  2. y = .Range("b65536").End(xlUp).Row
  3. .Range("a" & y + 1) = Sheets("日報表輸入").Range("e2").Value '日期
  4. For n = 3 To 7
  5. .Cells(y + 1, n - 1) = Sheets("日報表輸入").Cells(41, n).Value
  6. For i = 42 To 51
  7. If Sheets("日報表輸入").Cells(i, n).Value <> "" Then
  8. .Cells(y + 1, n - 1) = Sheets("日報表輸入").Cells(i, n).Value
  9. End If
  10. Next i
  11. Next n
  12. End With
複製代碼

作者: olisun    時間: 2010-8-12 10:47

運行結果
一、For n = 3 To 7     3這一個沒有顯示資料
二、For i = 42 To 51   只有第51這個
三、我希望是如果   Sheets("日報表輸入")的b42:b51都有數據則把b42:g51的數據都填入到Sheets("成交客戶")a:f(從a2開始),如果只有b42:b44有數據,則把b42:g44數據填入。
作者: GBKEE    時間: 2010-8-12 11:04

回復 3# olisun
你只附上一段程式碼 你的解釋要用猜測的 可以附檔說明嗎?




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