返回列表 上一主題 發帖

製值之後的下面儲存格皆為""

回復 1# myleoyes


     試試下述程式碼~ 應該可以符合你的需求
   Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      
      Select Case Target.Column      'Target.Column 為你選擇的欄位,因J欄位為第10欄,因此CASE 僅寫10
      Case 10
          For x = 3 To Target.Row - 1 'Target.Row:為你選擇的J欄位第幾列
              J = J + 1
              Cells(x, 7) = 11 * J    '每增一列增加11
          Next
          Target.Offset(0, -3) = Target(1, 1)   'Target.Offset(0, -3):為你選擇J欄位儲存格 往左移3欄的位置帶入Target(1, 1)(你選擇J欄位儲存格)
          For c = Target.Row + 1 To Target.End(xlDown).Row  '清除 計算為你選擇J欄位儲存格數目
              Cells(c, 7) = ""
          Next
      End Select
   
End Sub
學習才能提升自己

TOP

本帖最後由 hugh0620 於 2011-2-15 09:38 編輯

回復 3# myleoyes


        Q. Cells(x, 7) = 11 * J    '每增一列增加11,小第不解為何每增一列要用11來加呢?
         A. 因為你給的圖不就是每列都加11,除非你需要的是其他的東西??
        Q. 還有以範例來說32列是最後一列,所以當按J32時因為後面是""所以程式,無法停止  Next....
           Select Case Target.Column      
             Case 10
             For x = 3 To Target.Row - 1
              J = J + 1
                   Cells(x, 7) = 11 * J   
             Next
          Target.Offset(0, -3) = Target(1, 1)  
          Range(Target(1).Offset(1, -3), Target(1).Offset(1, -3).End(xlDown)) = ""  '<----新增這行,偷用Hsieh大大的東西^.^
         '現在知道可以怎麼用~ 多學會一招~...
          End Select
        End Sub
     Q.   另一方面是當J欄的儲存格=""時,是不能執行程式前輩忘記考慮到,原程式有說( If Target(1) <> "" Then nn )
           這個問題我看不懂耶~  不知道你J=""時, 不能執行的結果是怎麼樣??
學習才能提升自己

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題