返回列表 上一主題 發帖

判斷式

判斷式

我已經把判斷式寫好,不知道是不是我寫的判斷式有問題
選手1 的排名(圖片中紅色部分) 我想放在"資料彙整"的I2  (2014 CURRENT排名)
選手2的排名(圖片中紅色部分)  我想放在"資料彙整"的L3  (單打排名)

雖然"擷取資料"中的儲存格是一樣,但意義不一樣。

可是我在寫判斷式讓他試跑的過程中
選手1的(2014 CURRENT排名) 總是被整理到 L2
請問能否請大大幫我看看是哪裡出問題 順便幫我解釋一下 謝謝!


123 (2).rar (138.51 KB)

本帖最後由 GBKEE 於 2014-11-20 12:57 編輯

回復 19# 518587
所抓取Range的值是否正確?
  1.   With .Cells(myrng.Row, "A")'<-以這位置為基準點的Range,-> .Range("B3"), .Range("D2"), .Range("B4"),...  請在看一次#18的圖片,這樣了解碼?
  2.             Select Case myrng.Column
  3.              Case 3  '"W-L" 在C欄
  4.                 myAr = Array("", "", "", .Range("B3"), .Range("D2"), .Range("B4"), .Range("F2"), "", "", .Range("B6"), .Range("D5"), .Range("B7"))
  5.                 '單打排名(W-L):.Range("D2")  -> 2014/3/6 這"(是3勝6敗)"在何處?
  6.             Case 4   '"W-L" 在D欄
  7.                 myAr = Array(.Range("B3"), .Range("D2"), .Range("F6"), .Range("B5"), .Range("D4"), .Range("B6"), .Range("F4"), .Range("B8"), .Range("F7"), .Range("B10"), .Range("D9"), .Range("B11"))
  8.                 '雙打排名(W-L): .Range("D9") ->2014/6/27 這"(是6勝27敗)"在何處?
  9.             End Select
  10.        End With
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 18# GBKEE


    大大,請問為何要抓Range("B3"), .Range("D2"), .Range("F6"), .Range("B5"), .Range("D4"), .Range("B6"), .Range("F4"), .Range("B8"), .Range("F7"), .Range("B10"), .Range("D9"), .Range("B11"
    這幾個呢?

TOP

回復 17# 518587



如圖示 相對應於"S D"的Range
  1.   Case 4   '"W-L" 在D欄
  2.                 myAr = Array(.Range("B3"), .Range("D2"), .Range("F6"), .Range("B5"), .Range("D4"), .Range("B6"), .Range("F4"), .Range("B8"), .Range("F7"), .Range("B10"), .Range("D9"), .Range("B11"))
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 16# GBKEE


    不好意思  能否請大大幫我做一個簡單明瞭的註解!! 感恩~~

TOP

本帖最後由 GBKEE 於 2014-11-18 16:50 編輯

回復 15# 518587
參考一下,選手姓名,年齡,身高,體重.可自己寫寫看


  1. Option Explicit
  2. Sub Ex()
  3. Dim n As Integer, myrng As Range, mySh As Worksheet, myAr
  4. '從網頁擷取資料
  5. For n = 1 To 2
  6. With Sheets("擷取資料")
  7.     If .QueryTables.Count >= 1 Then .QueryTables("Novak-Djokovic_1").Delete  '太多的QueryTable 物件會佔用資源
  8.     .UsedRange.ClearContents
  9.     Set myrng = Sheets("選手網址").Cells(n + 1, 1)
  10.     Set mySh = Sheets("資料彙整")
  11.     With .QueryTables.Add(Connection:="URL;" & myrng.Text, Destination:=.Range("$A$1"))
  12.         .Name = "Novak-Djokovic_1"
  13.         .FieldNames = True
  14.         .RowNumbers = False
  15.         .FillAdjacentFormulas = False
  16.         .PreserveFormatting = True
  17.         .RefreshOnFileOpen = False
  18.         .BackgroundQuery = True
  19.         .RefreshStyle = xlInsertDeleteCells
  20.         .SavePassword = False
  21.         .SaveData = True
  22.         .AdjustColumnWidth = True
  23.         .RefreshPeriod = 0
  24.         .WebSelectionType = xlEntirePage
  25.         .WebFormatting = xlWebFormattingNone
  26.         .WebPreFormattedTextToColumns = True
  27.         .WebConsecutiveDelimitersAsOne = True
  28.         .WebSingleBlockTextImport = False
  29.         .WebDisableDateRecognition = False
  30.         .WebDisableRedirections = False
  31.         .Refresh BackgroundQuery:=False
  32.     End With
  33.     Set myrng = .Cells.Find("W-L", Lookat:=xlWhole)  '尋找"W-L"
  34.     If Not myrng Is Nothing Then
  35.         With .Cells(myrng.Row, "A")
  36.             Select Case myrng.Column
  37.              Case 3  '"W-L" 在C欄
  38.                 myAr = Array("", "", "", .Range("B3"), .Range("D2"), .Range("B4"), .Range("F2"), "", "", .Range("B6"), .Range("D5"), .Range("B7"))
  39.                 '單打排名(W-L):.Range("D2")  -> 2014/3/6 這"(是3勝6敗)"在何處?
  40.             Case 4   '"W-L" 在D欄
  41.                 myAr = Array(.Range("B3"), .Range("D2"), .Range("F6"), .Range("B5"), .Range("D4"), .Range("B6"), .Range("F4"), .Range("B8"), .Range("F7"), .Range("B10"), .Range("D9"), .Range("B11"))
  42.                 '雙打排名(W-L): .Range("D9") ->2014/6/27 這"(是6勝27敗)"在何處?
  43.             End Select
  44.         End With
  45.         With Sheets("資料彙整").Cells(n + 1, "I").Resize(, UBound(myAr) + 1)
  46.             .Value = myAr
  47.             .Cells(IIf(myrng.Column = 4, 11, 5)).NumberFormatLocal = "yyyy/m/d"
  48.             
  49.         End With
  50.     End If
  51.     End With
  52.    Next n
  53.    ActiveWorkbook.Save
  54.    MsgBox "處理完畢!"
  55. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 14# jackdream


    大大您好,謝謝您幫我解決其問題,但我在13樓又出現一個問題,能否請您再幫我看看!
    萬分感謝!

TOP

選手一有2014  current 、career high
    選手二沒有,只有career high
518587 發表於 2014-11-17 17:46


意思是...
如果有2014  current,就使用2014  current當作PRIZE MONEY,
如果沒有2014  current,就使用career high當作PRIZE MONEY

但,這樣的判斷方式,不論是選手一或二,
答案都在PRIZE MONEY下一列的最後一格資料,
不是嗎?

跟昨天給的語法,找到的結果相同
http://forum.twbts.com/redirect.php?goto=findpost&ptid=12801&pid=72209&fromuid=12

TOP

問題在於,什麼情況下要使用2014  current ,又什麼情況下改使用career high ?
jackdream 發表於 2014-11-17 17:33



    選手一有2014  current 、career high
    選手二沒有,只有career high

如圖綠色部分~

TOP

回復  jackdream


    選手一的"PRIZE MONEY"那一欄是 2014  current的
    選手二的"PRIZE MONEY"那一欄是 career high的
    兩個是不一樣的,請問我該如何撰寫讓他判斷?.
518587 發表於 2014-11-17 17:09



    問題在於,什麼情況下要使用2014  current ,又什麼情況下改使用career high ?

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題