Newb,
我在第二个块的第一个'For'循环线上得到运行时错误'1004':
我编辑了这个问题,使其更加清晰。 因为整个代码的这一部分都在它的末尾,所以我在有问题的行之前移动了Dimensions和object Sets。 最让我感到困扰的是,我在下面的 Chunk 1 的代码中有更高的'For'循环。唯一的区别是,在 Chunk 2 中,'For'loop用于'í',而 Chunk 2 用于'k'... Go figure ... < / p>
第1块:
Dim ExposureDataInput As Worksheet
Dim ManualSimulation As Worksheet
Set EDI = Sheets("ExposureDataInput")
Set MS = Sheets("ManualSimulation")
Dim i As Integer
Dim n As Integer
Dim j As Integer
**For i = 2 To EDI.Range("B" & Rows.Count).End(xlUp).Row**
If EDI.Range("B" & i).Value > 0 Then
n = MS.Range("A" & Rows.Count).End(xlUp).Row + 1
MS.Range("A" & n).Value = EDI.Cells(i, 1).Value
n = MS.Range("B" & Rows.Count).End(xlUp).Row + 1
MS.Range("B" & n).Value = EDI.Cells(i, 2).Value
n = MS.Range("C" & Rows.Count).End(xlUp).Row + 1
MS.Range("C" & n).Value = EDI.Cells(i, 4).Value
n = MS.Range("D" & Rows.Count).End(xlUp).Row + 1
MS.Range("D" & n).Value = EDI.Cells(i, 6).Value
n = MS.Range("E" & Rows.Count).End(xlUp).Row + 1
MS.Range("E" & n).Value = EDI.Cells(i, 8).Value
n = MS.Range("F" & Rows.Count).End(xlUp).Row + 1
MS.Range("F" & n).Value = EDI.Cells(i, 10).Value
n = MS.Range("G" & Rows.Count).End(xlUp).Row + 1
MS.Range("G" & n).Value = EDI.Cells(i, 12).Value
End If
Next i
块2:对我大喊错误424:对象必需或错误1004:未设置维度。为'í','n'和&amp;设置了完全相同的尺寸。 第1块中的'j'。
Dim HistoricalDataandExcessReturns As Worksheet
Set HDaER = ThisWorkbook.Worksheets("HistoricalDataandExcessReturns")
Dim k As Integer
Dim y As Integer
**For k = 2 To EDI.Range("B" & Rows.Count).End(xlUp).Row**
If EDI.Range("B" & k).Value > 0 Then
y = HDaER.Range(Columns.Count & 1).End(xlToLeft).Column + 1
HDaER.Range(y & 1).Value = EDI.Cells(1, k).Value
y = HDaER.Range(Columns.Count & 2).End(xlToLeft).Column + 1
HDaER.Range(y & 2).Value = EDI.Cells(2, k).Value
End If
Next k
Chunk 3 w类似For
循环:
For j = 2 To MS.Range("$A" & Rows.Count).End(xlUp).Row
With MS.Range("$J" & j).Borders
.LineStyle = xlContinous
.Color = vbWhite
.Weight = xlThin
End With
With MS.Range("$K" & j).Borders
.LineStyle = xlContinous
.Color = vbWhite
.Weight = xlThin
End With
With MS.Range("$L" & j).Borders
.LineStyle = xlContinous
.Color = vbWhite
.Weight = xlThin
End With
Next j
我尝试了几种“。复制”的方法,但没有运气......虽然它与运气无关,但我认为。
一般来说,我更喜欢“MS”ws中的单元格与我想要转置的“HDaER”行中的单元格之间的直接链接。喜欢'='的方法。
@SJR,我希望会有更多的亮点。 我在 Chunk 1 中替换了'MS'表w'EDI'表单,使其与 Chunk 2 中的'i'Rows.Count
几乎完全相同。
如果有人能给我一个很好的提示如何抽出'For'循环以'='的方式工作,我会很感激。
答案 0 :(得分:2)
你不能像那样使用Range(它的列然后是行),而是使用Cells。加上n
。
xltoleft