VBA搜索值后定义范围

VBA搜索值后定义范围

问题描述:

我有一张包含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://*.com/help/asking)问题的帮助,特别是如何创建[MCVE](https://*.com/help/mcve) – chrisis

+0

什么你有没有尝试过?发布你的代码... – Rdster

+0

我已经更新了这个问题。对不起,我是新手。 – SamW92

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