ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] [¨D§U] VBA ¤ñ¹ï«á«ùÄò¬Û´î °ÝÃD

[µo°Ý] [¨D§U] VBA ¤ñ¹ï«á«ùÄò¬Û´î °ÝÃD

EXCEL A ­¶
¦³¨â¦W¦P¾Ç »P ¨C¤éªá¶O


EXCEL B ­¶
¨â¦W¦P¾Ç¦s´Ú




VB¼gªk

Sub TEST()

Dim i As Integer
Dim j As Integer

Sheets("A").Select
        
       i = 3
      
    Do While Range("B" & i) <> ""
   
       j = 3
      
    Do While Sheets("B").Range("A" & j) <> ""
        If Range("B" & i) = Sheets("B").Range("A" & j) Then
           Range("D" & i) = Sheets("B").Range("B" & j) - Sheets("A").Range("C" & i)
    Exit Do
         End If
            j = j + 1
  Loop
            i = i + 1
Loop

MsgBox " TEST! "


End Sub
°ÝÃDÂI ¥L¥u·|¤ñ¹ï«á¨Ï¥Î¦s´Ú¬Û´î ·í¤éªá¶O ¨Ã¤£·|³sÄò¬Û´î
¨Ò¦p ¤p©ú ¦s´Ú 5000 ( 1/30 ¤p©ú ªá¶O 300 ) ( ¦s´Ú5000 - 300 = 4700 ) ¨ãÄò¤ñ¹ï 2/13 ¤p©ú ªá¶O 200 ( ¦s´Ú 5000 - 200 = 4800 )

½Ð±Ð¦U¦ì°ª¤â
«ü¾É¤@¤U §Æ±æ¥i¥H§ï¦¨
¨Ò¦p ¤p©ú ¦s´Ú 5000 ( 1/30 ¤p©ú ªá¶O 300 ) ( ¦s´Ú5000 - 300 = 4700 ) ¨ãÄò¤ñ¹ï 2/13 ¤p©ú ªá¶O 200 ( ¦s´Ú 4700 - 200 = 4500 )


¾Ò´o³\¤[¡A¤@ª½µLªk¸Ñ¨M¡C¡C¡C
·Ð½Ð«ü¾É¤@¤U !

3.jpg (36.11 KB)

3.jpg

¦^´_ 1# sabery
  1. Sub TEST()
  2. Dim i As Integer
  3. Dim j As Integer
  4.        j = 5
  5.     Do While Sheets("B").Range("A" & j) <> ""
  6.            i = 6
  7.         Do While Range("B" & i) <> ""
  8.             If Range("B" & i) = Sheets("B").Range("A" & j) Then
  9.                 B = Sheets("A").Range("C" & i) + B
  10.                Range("D" & i) = Sheets("B").Range("B" & j) - B
  11.             End If
  12.                 i = i + 1
  13.         Loop
  14.                 B = 0
  15.                 j = j + 1
  16.     Loop
  17. MsgBox " TEST! "
  18. End Sub
½Æ»s¥N½X

TOP

¦^´_ 2# lpk187

«D±`·PÁÂÀ°§U..
¥i¬Oµ²ªG¦ü¥G¤£¤Ó¥¿½T !!
4.jpg
¤ý¤p©ú ²Ä¤G¦¸ªá¶OÅܦ¨­t¼Æ ...

TOP

¦^´_  sabery
lpk187 µoªí©ó 2015-4-11 23:02



    «D±`·PÁª©¤j !!
¤wª¾¹D°ÝÃDÂI¦b­þÃä !!

TOP

¥»©«³Ì«á¥Ñ sabery ©ó 2015-4-12 05:11 ½s¿è
¦^´_  sabery
lpk187 µoªí©ó 2015-4-11 23:02


            If Range("D" & i) < 0 Then
                Range("D" & i).Interior.Color = vbRed
                Else
                Range("D" & i).Font.Color = vbBlack
                End If

               
ª©¤j ¦A¦¸½Ð±Ð¤U !!  
¤µ¤Ñ °²¦p·Q§â­t¼Æ§ä¥X¨Ó §Ú¤å¤¤³o¼Ë¼g ¥u¦³³æ¿W§â Range("M" & i) ¸Ó®æ¤Ï¬õ ¦p¦ó§â¾ã¦æ¤Ï¬õ©O !!
¤£¦n·N«ä ·s¤â¤W¸ô ¯uªº¯uªº½Ð¦h­@¤ß«ü¾É !!

TOP

¦^´_  sabery
lpk187 µoªí©ó 2015-4-11 23:02


¥Ø«e¬O¦³¥Î³Ì²Â¤èªk
If Range("D" & i) < 0 Then
                Range("A" & i).Interior.Color = vbRed
                Range("B" & i).Interior.Color = vbRed
                Range("C" & i).Interior.Color = vbRed
                Range("D" & i).Interior.Color = vbRed
                Else
                Range("A" & i).Interior.Color = vbWhite
                Range("B" & i).Interior.Color = vbWhite
                Range("C" & i).Interior.Color = vbWhite
                Range("D" & i).Interior.Color = vbWhite
                End If

¤£ª¾¹D¦³¨S¦³§ó¦n¤è¦¡!?
¦]¬°­I´º´«¦â¾É­P½u¤£¨£¤F

TOP

¦^´_ 6# sabery
§c¡I§Ú¤£¬Oª©¤j¡A§Ú¤]¥u¬O­Ó·s¾Ç­û¦Ó¤w¡I:P
¸Õ¸Õ³o­Ó
  1. For Each arng In Range("D6:D" & Cells(Rows.Count, "D").End(xlUp).Row)
  2.     If arng < 0 Then
  3.         With Range(Cells(arng.Row, 1), Cells(arng.Row, Columns.Count).End(xlToLeft).Address).Interior
  4.             .Color = vbRed
  5.         End With
  6.     Else
  7.         With Range(Cells(arng.Row, 1), Cells(arng.Row, Columns.Count).End(xlToLeft).Address).Interior
  8.             .Color = vbWhite
  9.         End With

  10.     End If
  11. Next
½Æ»s¥N½X

TOP

¥»©«³Ì«á¥Ñ sabery ©ó 2015-4-15 05:21 ½s¿è
¦^´_  sabery
§c¡I§Ú¤£¬Oª©¤j¡A§Ú¤]¥u¬O­Ó·s¾Ç­û¦Ó¤w¡I
¸Õ¸Õ³o­Ó
lpk187 µoªí©ó 2015-4-12 23:05


¤£¦n·N«ä ª©¤j ³Ì«á¤@°Ý °²¨Ï
¤µ¤Ñ¼W¥[¤@·s¦P¾Ç
¤ý¤p´¼
1.jpg

¥i¬O¦s´Ú«o¨S¦³¥Lªº¸ê®Æ
13.jpg

§Æ±æ¦bD¥X²{­t¼Æ¤£°÷¦s´Ú ©Ò¥HÅã¥Ü
¨Ò¦p
2015/02/13       
§f¾å´¼        200  DÄæ = ¤£°÷
2015/02/26
§f¾å´¼        400  DÄæ = ¤£°÷
³o¼Ë¼g
  1. Sub TEST()
  2. Dim i As Integer
  3. Dim j As Integer
  4. Dim B As Long
  5. Sheets("A").Select
  6.        j = 5
  7.     Do While Sheets("B").Range("A" & j) <> ""
  8.            i = 6
  9.         Do While Range("B" & i) <> ""
  10.             If Range("B" & i) = Sheets("B").Range("A" & j) Then
  11.                 B = Sheets("A").Range("C" & i) + B
  12.                 Range("D" & i) = Sheets("B").Range("B" & j) - B
  13.             ElseIf Range("B" & i) <> Sheets("B").Range("A" & j) Then
  14.                 Range("D" & i) = "¤£°÷"
  15.             End If
  16.                 i = i + 1
  17.         Loop
  18.                 B = 0
  19.                 j = j + 1
  20.     Loop
  21. MsgBox " TEST! "
  22. End Sub
½Æ»s¥N½X
¥i¬O¿ù»~  ³s¤ý¤p©ú ³£¶]±¼ !
¥i¥H¦A¦¸«ü¾É¶Ü? «ô°U¤F.

TOP

¥»©«³Ì«á¥Ñ lpk187 ©ó 2015-4-15 20:26 ½s¿è

¦^´_ 8# sabery

µ{§Ç¤¤±ø¥ó¤£¦P¡A¾ãÅ骺µ{§Ç¤]·|¸òµÛ¤jÅܰʪº¡A¤£¤@©w¬O§A±q¤¤¶¡´¡¤J´N¥i¥H§¹¦¨ªº¡C
­ì¨Óªº¨º­Óµ{§Ç©M§A«e­±ªº±ø¥ó¬Û®t¤Ó¦h¡A©Ò¥H¾ã­Óµ²ºc¤]«ÜÃø¬Û¦P
©Ò¥H§Ú¤S·Q¤F·s¼W±ø¥óªº·sµ²ºc©M¤§«eªº¤£¦P
  1. Sub TEST2()
  2. Dim i As Integer
  3. Sheets("A").Select
  4. i = 6
  5. Do While Range("B" & i) <> ""
  6.     SSS = Range("B" & i) 'Æ[¹îÅܼƥÎ,¥i¥H§R°£³o¦C
  7.     If Range("D" & i) <> "" Then GoTo 100
  8.     Set c = Sheets("B").Columns(1).Find(Range("B" & i), , , , , 2) '´M§ä¬O§_¦b¦s´Ú¤¤¦³±b¤á
  9.     If c Is Nothing Then '¦pªG¨S¦³´N°õ¦æ³o­Óµ{§Ç
  10.         Range("D" & i) = "¤£°÷"
  11.         GoTo 100
  12.     End If
  13.     QQQ = c.Offset(0, 1).Value 'Ū¨ú¤u§@ªí"B"¬Y¤Hªº¦s´Ú
  14.     AAA = QQQ - Range("C" & i) '¬Y¤Hªº¦s´Ú-²Ä¤@¦¸ªá¶O
  15.     Range("D" & i) = AAA
  16.     Set DepRow = Columns(2).Find(Range("B" & i), Range("B" & i), , , , 1) '´M§ä¤U¤@­Ó¬Y¤Hªºªá¶O
  17.     Do While DepRow.Offset(0, 2).Value = "" '¤@ª½´M§ä¬Y¤Hªºªá¶O,ª½¨ì§ä¤£¨ì¬°¤î
  18.         AAA = AAA - DepRow.Offset(0, 1)
  19.         DepRow.Offset(0, 2) = AAA
  20.         Set DepRow = Columns(2).FindNext(DepRow)
  21.         BBB = DepRow.Row 'Æ[¹îÅܼƥÎ,¥i¥H§R°£³o¦C
  22.     Loop
  23. 100: '­«·sÁÙ­ìÅܼƭÈ
  24. AAA = ""
  25. i = i + 1
  26. Set c = Nothing
  27. Loop
  28. MsgBox " TEST! "
  29. End Sub
½Æ»s¥N½X

TOP

¦^´_ 8# sabery


  ¤U­±¬O§Ú°õ¦æªºµ²ªG
B¤u§@ªí
b.png
A¤u§@ªí

TOP

        ÀR«ä¦Û¦b : ·R¤£¬O­n¨D¹ï¤è¡A¦Ó¬O­n¥Ñ¦Û¨­ªº¥I¥X¡C
ªð¦^¦Cªí ¤W¤@¥DÃD