通过range.value获取错误的值

时间:2017-05-29 14:57:50

标签: vba excel-vba excel

以下代码应该从某些单元格中获取值并将其用作RANGE中的参数,以便将正确的内容从一个工作表复制并粘贴到另一个工作表中。

我没有任何编译错误,但是正在采用错误的值,这意味着复制的输出是错误的。

例如,值的起始行是6(位于AB4中),由于某种原因,它是从第2行而不是第6行复制。 要复制的行数为3(位于AJ4 [因为4为-1]),但复制5行,而不是3行。

我100%确定名为Weights的工作表上的AB4和AJ4包含所提到的值。

Sub CopyDataToRefined()

Dim AmtRows As Integer
Dim ColLet As String
Dim RowStart As Integer
Dim RowEnd As Integer
Dim Rng1 As Range

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ActiveWorkbook
Set ws = wb.Worksheets(Module2.FirstBBSName)

AmtRows = Sheets("Weights").Range("AJ4").Value
ColLet = Sheets("Weights").Range("AF5").Value
RowStart = Sheets("Weights").Range("AB4").Value
RowEnd = Sheets("Weights").Range("AJ4").Value - 1

Set Rng1 = ws.Range(ColLet & RowStart & ":" & ColLet & RowEnd)

Rng1.Copy Destination:=Worksheets("RefindData").Range("H3")

End Sub

1 个答案:

答案 0 :(得分:0)

我已经弄清楚了。它应该是:

AmtRows = Sheets("Weights").Range(AmtRowsValue).Value
ColLet = Sheets("Weights").Range(ColLetValue).Value
RowStart = Sheets("Weights").Range(RowStartValue).Value
RowEnd = Sheets("Weights").Range(AmtRowsValue).Value + Sheets("Weights").Range(RowStartValue).Value - 1

原来的RowEnd等于2,这搞砸了一切。

我真正需要的是获取行数,添加起始行值减去1.这为RowEnd提供了适当的值,在此实例中等于8(总共3行数据开始)从第6行起包括

感谢Peh的灯泡时刻。