1

特定の活動が達成された場合、毎月セルに「X」を入れる Excel トラッカーを持っています。

この「X」は、同じシートのセル範囲に対応しています。

コマンドボックスをクリックしたときに欲しい。

  1. 1 月のセルに "X" がある場合は、現在のページの特定のセルを別のワーク シートの特定のセルにコピーします。
  2. 2 月のセルに "X" がある場合は、現在のページの他の特定のセルを別のワークシートの他の特定のセルにコピーします。

などなど、12月まで続きます。

次のコードがあります(動作しません):

Private Sub CommandButton1_Click()
Sheets("MRT").Select
If InStr(1, (Range("L8").Value), "X") > 0 Then
    Range("E42:AA42").Select
    Selection.Copy
    Sheets("Test '12").Select
    Cells(3, AP).Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
End If
End Sub
4

1 に答える 1

1

これを試して:

Private Sub CommandButton1_Click()
 If Sheets("MRT").Range("L8").Value like "*X*" Then

   Sheets("MRT").Range("E42:AA42").Copy
   Sheets("Test '12").Cells(3, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone
 End If
End Sub

私のテストでは機能しましCells(3,1)たが、他の位置指定子を目的のターゲットに適応させたい場合があります。

編集:月の部分を忘れていました...ちょっと待ってください...ここ:

Sub FindSignificant()
    Dim SearchString As String
    Dim SearchRange As Range, cl As Range
    Dim FirstFound As String
    Dim sh As Worksheet

    ' Set Search value
    SearchString = "a"
    Application.FindFormat.Clear
    ' loop through all sheets
        Set sh = Sheets("MRT")
        ' Find first instance on sheet
        Set cl = sh.Cells.Find(What:=SearchString, _
             After:=sh.Cells(1, 1), _
            LookIn:=xlFormulas, _
            LookAt:=xlPart, _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlNext, _
            MatchCase:=False, _
            SearchFormat:=False)
        If Not cl Is Nothing Then
            ' if found, remember location
            FirstFound = cl.Address
            ' format found cell
            Do
                Select Case sh.Cells(cl.Row, 1).Value
                  Case "december"
                    sh.Range("E42:AA42").Copy
                    Sheets("Test '12").Cells(3, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone
                  Case "february"
                    sh.Range("E42:AA42").Copy
                    Sheets("Test '12").Cells(3, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone
                  Case Else
                    'do nothing
                End Select

                ' find next instance
                Set cl = sh.Cells.FindNext(After:=cl)
                ' repeat until back where we started
            Loop Until FirstFound = cl.Address
        End If
End Sub

このコードはhereからのものです

選択ケースを適応させる必要がありますが、必要がない場合は、VBA なしでこれを解決することを本当に考えます;)

于 2012-09-14T07:27:07.247 に答える