Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。

? 發問於 電腦與網際網路軟體 · 9 年前

使用vba想做一個比對的資料

請vba高手幫幫忙:想做一個比對的資料.當按下比對.一至十二月的資料都要跟主索引資料做比對.只要1至12月以代號對應主索引的內容.施工人數.單位.負責人只要對應的資料不一樣時.就用深綠色強調顯現.核對無誤(是否修改).按取消比對.就還原.

檔案如下: 下載地址 http://www.funp.net/37781

2 個解答

評分
  • 9 年前
    最愛解答

    <範例檔>:

    http://www.funp.net/678619

    1.各月份比對不相同者,填入〔綠色〕底

    2.將全部不相同者列在一張表中,可按〔查看〕直接去看該筆資料。

    2012-04-04 18:35:59 補充:

    <範例檔>:

    http://www.funp.net/846649

    1.加入〔內容〕項目的比對

    2.加入程式碼的註解

    2012-04-04 18:37:28 補充:

    ~~另外主索引的h欄是輔助欄嗎?

    不是,是測試程式時,用來人工比對,以驗證程式執行無誤,已刪除!

    2012-04-04 22:53:36 補充:

    EXCEL VBA.比對各工作表資料,將與主表不相同者〔標示及列表〕

                             <.准提部林.>

    ---------------------------------

    範例檔簡介:

    ■主要需求:

     將〔各月份〕工作表與〔主索引〕比對,若其〔索引值〕相同,

     而〔內容.施工人數.單位.負責人〕其中之一有不相同時,

     1.儲存格〔標示底色〕。

     2.將資料列在〔比對表〕中,同時註明〔工作表位置〕,

       且加設〔超連結〕,以利直接點取該筆資料原始位置。

     

    ■程式碼:詳細註解請參考範例檔。

     Sub 比對()

     Dim MySht As Worksheet, xSht As Worksheet, xRow&, xR As Range

     Dim ShtGrp, MonSht As Worksheet, mRow&, mR As Range, mTxt&

     Dim xDic As Object, j&, y&, Ym&

     Set MySht = Sheets("比對表")

     Set xSht = Sheets("主索引")

     MySht.[3:65536].ClearContents

     xRow = xSht.[C65536].End(xlUp).Row

     If xRow < 5 Then MsgBox "※〔主索引〕無資料! ": Exit Sub

     Set xDic = CreateObject("Scripting.Dictionary")

     For Each xR In xSht.Range("C5:C" & xRow)

       If xR <> "" Then

        xDic(xR.Value) = xR(1, 2) & "_" & xR(1, 3) & "_" & xR(1, 4) & "_" & xR(1, 5)

       End If

     Next

     ShtGrp = Array("一月", "二月", "三月", "四月", "五月", "六月", _

         "七月", "八月", "九月", "十月", "十一月", "十二月")

     For j = 0 To UBound(ShtGrp)

       Set MonSht = Sheets(ShtGrp(j))

       mRow = MonSht.[F65536].End(xlUp).Row

       If mRow < 3 Then GoTo NEXT_SHT

       MonSht.Range("F3:J" & mRow).Interior.ColorIndex = xlNone

       For Each mR In MonSht.Range("F3:F" & mRow)

         If mR <> "" And xDic(mR.Value) <> "" Then

         If xDic(mR.Value) <> _

          mR(1, 2) & "_" & mR(1, 3) & "_" & mR(1, 4) & "_" & mR(1, 5) Then

          Ym = Ym + 1

          With MySht.Range("B3")

            For y = 1 To 5: .Cells(Ym, y) = mR(1, y).Value: Next y

            .Cells(Ym, 6) = MonSht.Name

            .Cells(Ym, 7).Formula = "=HYPERLINK(""#" & MonSht.Name & _

              "!" & mR.Address & """,""●"")"

          End With

          mR.Resize(1, 5).Interior.ColorIndex = 43

         End If

         End If

     Next

     NEXT_SHT:

     Next j

     End Sub

    ---------------------------------

    <範例檔>:

    http://www.funp.net/846649

    ---------------------------------

  • 9 年前

    部林大的方法更好.更便利~

    內容是比對的重要項目

    希望能把它加進去.只要比對沒有完全一樣就讓它變色吧!

    另外主索引的h欄是輔助欄嗎?

    感謝部林大幫忙~謝謝!

    2012-04-04 20:01:49 補充:

    感謝部林大的貼心註解~

    3Q

還有問題嗎?立即提問即可得到解答。