返回列表 上一主題 發帖

[發問] ~ 發現一個新的問題 關於IF判斷式

回復 26# opelwang


    應該是打錯字了, 正確是:

     學習VBA的用法.

TOP

回復 29# GBKEE


   版主我最近重新練習又發現了一個問題,就是如果我想要多判斷C10 與 C12 ,也就是同時可能兩個主辦兩個協辦,
能在'For Each E In Sh.Range("B10,B12")' 這邊直接插入'For Each E In Sh.Range("B10,B12,C10,C12") 嗎??'
那我在下面IF判斷式該如何修改??
顯示的位子都不變只是多判斷儲存格C10與C12

TOP

回復 32# willy1205


    試了一下好像沒辦法直接加入C10 C12,且下面判斷式會卡死...

TOP

版主有方法可以 解決嗎!?

TOP

[發問] ~ 發現一個新的問題 關於IF判斷式

本帖最後由 GBKEE 於 2014-5-22 16:40 編輯

我最近又重新將程式拿出來練習,原本判斷式是判斷B10與B12,
我發現如果今天我想要多判斷C10與C12,甚至D10與D12,不知道該從哪邊插入IF判斷式,
For Each E In Sh.Range("B8,B10") 這邊好像沒辦法直接改成 For Each E In Sh.Range("B8,B10,C10,C12")
有辦法能多判斷C10與C12嗎??

付上原帖的連結 http://forum.twbts.com/viewthrea ... p;extra=&page=3
版主給的程式碼
Dim NewRow As Integer, E As Range, Sh As Worksheet
Set Sh = Worksheets("4-工作日誌OP COA AGR")
For Each E In Sh.Range("B10,B12")
If E.Address = "$B$10" Then
            NewRow = Sh.Range("J34").Value
        Else
            NewRow = Sh.Range("J35").Value
        End If
        
With Worksheets(E.Value)
            
.Cells(NewRow, 1) = Sh.Range("C7")
            
.Cells(NewRow, 2) = Sh.Range("C8").Value
            
.Cells(NewRow, 3) = Sh.Range("I14").Value
            
.Cells(NewRow, 4) = Sh.Range("I15").Value
            
.Cells(NewRow, 6) = Sh.Range("G24").Value
            
If E.Address = "$B$10" Then
               
.Cells(NewRow, 7) = Sh.Range("H32")
.Cells(NewRow, 5) = Sh.Range("J10").Value
               
Sh.Range("J34") = NewRow
            
Else

.Cells(NewRow, 7) = Sh.Range("H34")
.Cells(NewRow, 5) = Sh.Range("J12").Value
               
Sh.Range("J35") = NewRow
            
End If
        
End With
   
Next
    MsgBox "New Data added", vbOKOnly, "Data"

End Sub

回復 35# willy1205
  1. Sub Ex()
  2. Dim E, NewRow
  3. For Each E In Range("B8,B10,C10,C12")
  4.     Select Case E.Address(0, 0)
  5.     Case "B8"
  6.         NewRow = 1
  7.     Case "B10"
  8.         NewRow = 2
  9.     Case "C10"
  10.         NewRow = 3
  11.     Case "C12"
  12.         NewRow = 4
  13.     End Select

  14.     MsgBox NewRow
  15. Next
  16. End Sub
  17. Sub Ex1()
  18. Dim E, NewRow
  19. For Each E In Range("B8,B10,C10,C12")
  20.     If E.Address(0, 0) = "B8" Then
  21.         NewRow = 1
  22.     ElseIf E.Address(0, 0) = "B10" Then
  23.         NewRow = 2
  24.     ElseIf E.Address(0, 0) = "C10" Then
  25.         NewRow = 3
  26.     ElseIf E.Address(0, 0) = "C12" Then
  27.         NewRow = 4
  28.     End If
  29.     MsgBox NewRow
  30. Next
  31. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 36# GBKEE


   版主謝謝你,請問如果要把他寫在同一個按鈕巨集裡面這有辦法嗎??

TOP

如果將原本的
For Each E In Sh.Range("B10,B12")
If E.Address = "$B$10" Then
            NewRow = Sh.Range("J34").Value
        Else
            NewRow = Sh.Range("J35").Value
        End If
改成
For Each E In Range("B10,B12,C10,C12")
    Select Case E.Address(0, 0)
    Case "B10"
        NewRow = 1
    Case "B12"
        NewRow = 2
    Case "C10"
        NewRow = 3
   Case "C12"
NewRow = 4
    End Select
下面的With Worksheets(E.Value)會變成out of range

該如何修改?

TOP

回復 38# willy1205

excercise.zip (64.56 KB)

如練習這個檔案,原本是判斷B10與B12(A君與B君)然後按下按鈕匯入資料進去A君與B君的SHEET,
現在想在C10與C12,D10與D12分別加入C君 D君 F君 E君的話,該怎麼插入進去判斷式呢??

TOP

回復 39# willy1205


  請問版主有建議嗎?? 謝謝

TOP

        靜思自在 : 盡多少本份,就得多少本事。
返回列表 上一主題