2017-07-31 99 views
-2

我有一張包含B列中的星期編號的工作表。我試圖創建一個宏,它查找單元格J2中的星期編號(或使用輸入框)​​,然後找到B列中的星期數選擇列CG中的數據並將它們複製到表2中(我可以進行復制等,它定義了我正在努力的範圍)。Image of datasheetVBA搜索值後定義範圍

這裏是代碼,顯示哪些信息I需要複製和粘貼。我努力使它找到星期編號,然後定義範圍。下面的代碼少了點本週四

Sub Copy4() 
' 
' Copy Macro 
' Week number 
    Sheets("Sheet1").Range("B14:B17").Copy 
    Sheets("Sheet2").Range("C3").PasteSpecial Paste:=xlPasteValues 
    Sheets("Sheet2").Range("D3").PasteSpecial Paste:=xlPasteValues 
' Data Copy 
    Sheets("Sheet1").Range("C14:G17").Copy 
    Sheets("Sheet2").Range("C4").PasteSpecial Paste:=xlPasteValues 
    Range("B2:G7").Select 
    Application.CutCopyMode = False 
    Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap 
End Sub 

預先感謝任何幫助

+0

歡迎來到Stack Overflow。請查看[ask](https://stackoverflow.com/help/asking)問題的幫助,特別是如何創建[MCVE](https://stackoverflow.com/help/mcve) – chrisis

+0

什麼你有沒有嘗試過?發佈你的代碼... – Rdster

+0

我已經更新了這個問題。對不起,我是新手。 – SamW92

回答

1
Sub copy() 
Dim CopySheet As Worksheet 
Dim PasteSheet As Worksheet 
Set CopySheet = Worksheets("Sheet2") 
Set PasteSheet = Worksheets("Sheet3") 

Dim tableMaxCol As Integer 
Dim tableMaxRow As Integer 

Dim weekNumber As Integer 

Dim row As Integer 

tableMaxCol = CopySheet.Cells(1, CopySheet.Columns.Count).End(xlToLeft).Column 
tableMaxRow = CopySheet.Cells(CopySheet.Rows.Count, 1).End(xlUp).row 

weekNumber = CopySheet.Cells(2, 10).Value 

For row = 2 To tableMaxRow step 4 
    If CopySheet.Cells(row, 2).Value = weekNumber Then 
     CopySheet.Range(CopySheet.Cells(row, 3), CopySheet.Cells(row + 3, 7)).copy _ 
      Destination:=PasteSheet.Range("C4") 
    End If 
Next row 
End Sub 

答案編輯。

+0

這找到一行並只複製一行,我需要它複製圖像中顯示的3行,並將特殊值粘貼到單張2的單元格C4中。 – SamW92

+0

@ SamW92 Answer編輯。 –

+0

謝謝Junyang。現在唯一的問題是,這不僅僅是粘貼值,其他一切正常工作。我會玩一玩,看看我能如何才能做到這一點。 – SamW92