2016-09-26 2 views
-1

これは完全に機能するコードを使用しましたが、2つ以上の緑色(RGB(0,176,80))のセル値を別々のセルに表示したいと思います。同じ列にある別の列を、+記号付きの同じセルにまとめて表示するのではなく、Excel VBAコードを編集して2つ以上の値を別々の列に表示する

Option Explicit 

Sub main() 
    Dim row As ListRow 
    Dim icol As Long 
    Dim formula As String 

    For Each row In ActiveSheet.ListObjects("MyTable").ListRows 
     formula = "" 
     For icol = 1 To row.Range.Count - 1 
      With row.Range(1, icol) 
       If .Interior.Color = RGB(0, 176, 80) Then formula = formula & .value & "+" '.Address(False, False) 
      End With 
     Next icol 
     If formula <> "" Then row.Range(1, icol).value = Left(formula, Len(formula) - 1) 
    Next row 
End Sub 

答えて

0

いつものようにブリリアントこの

Option Explicit 

Sub main() 
    Dim row As ListRow 
    Dim nCols As Long, icol As Long 
    Dim formula As String 
    Dim arr As Variant 

    With ActiveSheet.ListObjects("MyTable") '<--| reference your table 
     nCols = .ListColumns.Count - 1 '<-- "fix" its initial columns number since subsequent operations will increase it 
     For Each row In .ListRows 
      formula = "" 
      For icol = 1 To nCols 
       With row.Range(1, icol) 
        If .Interior.Color = RGB(0, 176, 80) Then formula = formula & .Value & "+" '.Address(False, False) 
       End With 
      Next icol 
      If formula <> "" Then 
       arr = Split(Left(formula, Len(formula) - 1), "+") '<--| fill an array with 'formula' string elements separated by "+" 
       row.Range(1, icol).Resize(, UBound(arr) + 1).Value = arr '<--| write array content into current row last column adjacent cells 
      End If 
     Next row 
    End With 
End Sub 
+0

を試してみてください。完璧に働いた。コメントもお勧めです。 –

+0

あなたは大歓迎です – user3598756

関連する問題