【发布时间】:2019-08-11 12:54:52
【问题描述】:
我有两个工作表。 Sheet1 包含 B3:W296 中的数据,Sheet2 包含交替列 B3:B23、D3:D23、..、T3:T23 中的数据。现在我应该填写 Sheet2(C3:C23, E3:E23,..,U3:U23) 中的空备用列
Sheet2 的值应该像这样填充,
Sheet2.C3.value = VARP("Sheet1".Range(C3:C16)) ...
Sheet2.U3.value = VARP("Sheet1".Range(U3:U16))
对于 Sheet2 中的 row4,公式应更改为,
Sheet2.C4.value = VARP("Sheet1".Range(C17:C30)) ...
Sheet2.U4.value = VARP("Sheet1".Range(U17:U30))
我必须在不同的文件中执行此操作,因此两张表中的行数和列数可能会有所不同。所以我不能明确给出行号和列号。
我已经开始写下面的代码,但是我卡住了,
Dim lRow, lRow2 As Long
Dim lCol, lCol2 As Long
Dim i, j As Integer
lRow = ThisWorkbook.Worksheets("Sheet2").Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
lCol = ThisWorkbook.Worksheets("Sheet2").Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
lRow2 = ThisWorkbook.Worksheets("Sheet1").Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
lCol2 = ThisWorkbook.Worksheets("Sheet1").Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
For i = 3 To lRow
For j = 3 To lCol - 2 Step 2
ThisWorkbook.Worksheets("Sheet2").Range(j & i).Value = VarP(ThisWorkbook.Worksheets("Sheet1").Range())
Next j
Next i
对于这种情况,我不确定如何继续执行 for 循环。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
您计算的范围是否总是 14 个单元格?
-
@SJR 是的..我将始终计算 14 个单元格的方差