Board logo

標題: [發問] 尋找公倍數 [打印本頁]

作者: maiko    時間: 2013-10-6 19:20     標題: 尋找公倍數

首先判斷B1、C1、D1、E1、F1……有沒有資料,如有多少個資料就查找多少欄的共同倍數:

1. 在B2:?31 表中查找B1、C1、D1、E1、F1……的共同倍數相同值,然後給它們填上顏色以便辨識,第一組的填上一個顏色,第二組的填上另一個顏色,第三組的填上第三個顏色,以此類推。

* ?為變量,B1、C1、D1、E1、F1……有多少個資料就為多少個變量

謝謝!

[attach]16255[/attach]

[attach]16256[/attach]
作者: stillfish00    時間: 2013-10-7 00:40

本帖最後由 stillfish00 於 2013-10-7 00:43 編輯

回復 1# maiko
  1. Sub TEST()
  2.     Dim a As Long, x
  3.    
  4.     a = Application.WorksheetFunction.lcm(Range([b1], [b1].End(xlToRight)))
  5.     For Each x In Range([b2], [b1].End(xlToRight).End(xlDown))
  6.         If x.Value Mod a = 0 Then
  7.             x.Interior.ColorIndex = 3 + int(x / a) Mod 54
  8.         End If
  9.     Next
  10. End Sub
複製代碼

作者: maiko    時間: 2013-10-7 07:36

回復  maiko
stillfish00 發表於 2013-10-7 00:40



   
有點問題:就是不能判斷要查找的欄數多少欄才找出每欄的公同倍數。不是其中兩欄有共同倍數就找出來,不是這樣,要所有欄都有共同倍數才找出來。謝謝!
作者: stillfish00    時間: 2013-10-7 09:19

回復 3# maiko
前一次的結果沒清掉?
作者: Hsieh    時間: 2013-10-7 16:11

回復 3# maiko
  1. Sub Ex()
  2. Dim Rng As Range, A As Range
  3. Set Rng = Range([B1], [B1].End(xlToRight))
  4. x = Application.WorksheetFunction.Lcm(Rng)
  5. y = Rng.Count
  6. For Each A In Range(Rng(1).Offset(1).Resize(, y), Rng(1).Offset(1).Resize(, y).End(xlDown))
  7.    If A Mod x = 0 And Application.CountIf(Range(Rng(1).Offset(1).Resize(, y), Rng(1).Offset(1).Resize(, y).End(xlDown)), A) = y Then
  8.       A.Interior.ColorIndex = 3 + Int(A / x) Mod 54
  9.    Else
  10.       A.Interior.ColorIndex = xlNone
  11.    End If
  12. Next
  13. End Sub
複製代碼

作者: maiko    時間: 2013-10-7 19:28

回復  maiko
Hsieh 發表於 2013-10-7 16:11



   
Hsieh大,能否每次執行之前清除顏色格式?和自動計算B2:?1表中的共同倍數?

謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)