我无法将各种范围复制到相应的工作表中。
files.my_file
在这个例子中,每个变量等于^。
dateRng = 12/19/2016 00:00:00 - 12/19/2016 23:59:59
num = 11
NumPts = 33
Sheets.Count = 16
所以目前,我将第一个范围复制到第一个相应的工作表中。但是之后它也会粘贴到所有其余的纸张上。而不是将第二个范围与第二个工作表配对。在此先感谢您的帮助。
答案 0 :(得分:2)
我不太明白这个问题。如果你想通过不同的纸张粘贴不同的范围,我相信你的周期已经混淆了。
由于For j在For s中运行,因此在传递到下一张工作表之前,您将浏览第一张工作表中的所有范围。
所以也许:
For s = 1 To Sheets.Count
For y = 1 To NumPts
With Sheets(s)
If .Name = s Then
Sheets("Reporting").Range("A" & (12 * y - 7) & ":" & fConvertToLetter & (12 * y + 1)) _
.Copy (.Range("A2"))
.Range("A1") = dateRng
.Name = Sheets("Point Names").Range("B" & (3 * s - 1))
End If
Columns("B:B").EntireColumn.AutoFit
End With
Next y
Next s
只有在我正确理解并且您希望范围随每张下一张纸移动时,这才适用。
答案 1 :(得分:0)
我能够通过将For Statements
分成两个块来解决问题。
For s = 1 To Sheets.Count
With Sheets(s)
For j = 1 To num
If .Name = j Then
.Range("A1:C1").Merge
.Range("A1") = dateRng
.Name = Sheets("Point Names").Range("B" & (3 * j - 1))
End If
Next j
End With
Next s
For s = 1 To Sheets.Count
With Sheets(s)
For y = 1 To NumPts
If .Name = Sheets("Reporting").Range("B" & (12 * y - 5)) Then
Sheets("Reporting").Range("A" & (12 * y - 6) & _
":" & fConvertToLetter & (12 * y + 20)) _
.Copy (.Range("A2"))
.Columns("A:A").ColumnWidth = 12
.Columns("B:B").EntireColumn.AutoFit
End If
y = y + 2
Next y
End With
Next s