2012-09-14 82 views
1

我有一個問題,我知道有人可以幫助我。在視覺基礎部門我非常有限。Excel如果字段中有X複製單元格到另一個表格

我有一個excel跟蹤器,如果某個活動已完成,我每個月都會在單元格中放入一個「X」。 這個「X」與同一張紙上的一系列單元格相關。

我希望能夠做到以下幾點。當我點擊一個命令框時;

  1. 如果一月份的單元格將當前頁面上的特定單元格複製到另一個工作表上的特定單元格。
  2. 如果2月份的單元格具有「X」,則將當前頁面上的某些其他特定單元格複製到另一個工作表上的某些其他特定單元格。

    等到十二月。

我有以下代碼(不工作):

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 
+0

你可以更具體的具體細胞?如果一月是'L8',二月是什麼?如果要在「L8」上覆制的範圍是「E42:AA42」,那麼二月份是什麼?目標表名稱和位置等應遵循哪些規則? – brettdj

+0

這聽起來很像VLOOKUP,但是每個複製目標單元都必須使用它,並且不會有按鈕。 – Jook

回答

0

試試這個:

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)和其他位置說明符到您想要的目標。

編輯:忘了用幾個月零件...等一下...點擊這裏:從here

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 

這段代碼起源你必須適應選擇的情況下,但如果沒有必要,我真的會考慮解決這個問題;)

+0

Jook ...太棒了!謝謝。我結束了每個月使用你的第一個代碼和if語句。這絕對不是最好的選擇,但是這是他的伎倆。我沒有跟你的第二個代碼去的唯一原因是我自己無法解釋和修改它以使其工作! – Steve

相關問題