使用VBA进行规模编程

时间:2019-03-06 18:50:18

标签: excel vba

我做一个深度标尺,直到4米,以便从每个水平上抽取“圆锥”样本。对于单个“锥体”样本,需要进行密度和湿度测试。

在得到两个测试结果的同时,有一个“圆锥”散热,并且根据深度条件将它们都复制到“对数”散热中。

我遇到错误1004。

Sub Cone()



For i = 1 To 8

    celValue = Sheets("Cone").Range("G18").Offset(0, 1 - i).Value
    belValue = Sheets("Cone").Range("G18").Offset(0, -i).Value
    dens = Sheets("Cone").Range("G41").Offset(0, i - 1).Value
    mois = Sheets("Cone").Range("G48").Offset(0, i - 1).Value

   If celValue = belValue Then

    If celValue < 0.2 Then
      Sheets("Log").Range("S9") = "Sand Cone"
      Sheets("Log").Range("R9").Value = celValue
      Sheets("Log").Range("AI9").Value = dens
      Sheets("Log").Range("AJ9").Value = mois
      Sheets("Log").Range("AK9").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      Sheets("Log").Range("AL9").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value

      ElseIf celValue < 0.4 And celValue >= 0.2 Then
      Sheets("Log").Range("S10") = "Sand Cone"
      Sheets("Log").Range("R10").Value = celValue
      Sheets("Log").Range("AI10").Value = dens
      Sheets("Log").Range("AJ10").Value = mois
      Sheets("Log").Range("AK10").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      Sheets("Log").Range("AL10").Value = Sheets("Cone").Range("G48").Offset(0, 0 - i).Value


      ElseIf celValue <= 0.5 And celValue >= 0.4 Then
      Sheets("Log").Range("S11") = "Sand Cone"
      Sheets("Log").Range("R11").Value = celValue
      Sheets("Log").Range("AI11").Value = dens
      Sheets("Log").Range("AJ11").Value = mois
      'Sheets("Log").Range("AK11").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL11").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue > 0.5 And celValue < 0.9 Then
      Sheets("Log").Range("S12") = "Sand Cone"
      Sheets("Log").Range("R12").Value = celValue
      Sheets("Log").Range("AI12").Value = dens
      Sheets("Log").Range("AJ12").Value = mois
      'Sheets("Log").Range("AK12").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL12").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue <= 1 And celValue >= 0.9 Then
      Sheets("Log").Range("S13") = "Sand Cone"
      Sheets("Log").Range("R13").Value = celValue
      Sheets("Log").Range("AI13").Value = dens
      Sheets("Log").Range("AJ13").Value = mois
      Sheets("Log").Range("AK13").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      Sheets("Log").Range("AL13").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue > 1 And celValue < 1.2 Then

      Sheets("Log").Range("S14") = "Sand Cone"
      Sheets("Log").Range("R14").Value = celValue
      Sheets("Log").Range("AI14").Value = dens
      Sheets("Log").Range("AJ14").Value = mois
      'Sheets("Log").Range("AK14").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL14").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue >= 1.2 And celValue <= 1.5 Then
      Sheets("Log").Range("S15") = "Sand Cone"
      Sheets("Log").Range("R15").Value = celValue
      Sheets("Log").Range("AI15").Value = dens
      Sheets("Log").Range("AJ15").Value = mois
      'Sheets("Log").Range("AK15").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL15").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value



      ElseIf celValue > 1.5 And celValue < 1.8 Then
      Sheets("Log").Range("S16") = "Sand Cone"
      Sheets("Log").Range("R16").Value = celValue
      Sheets("Log").Range("AI16").Value = dens
      Sheets("Log").Range("AJ16").Value = mois
      'Sheets("Log").Range("AK16").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL16").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue >= 1.8 And celValue < 1.9 Then
      Sheets("Log").Range("S17") = "Sand Cone"
      Sheets("Log").Range("R17").Value = celValue
      Sheets("Log").Range("AI17").Value = dens
      Sheets("Log").Range("AJ17").Value = mois
      'Sheets("Log").Range("AK17").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL17").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue >= 1.9 And celValue <= 2 Then
      Sheets("Log").Range("S18") = "Sand Cone"
      Sheets("Log").Range("R18").Value = celValue
      Sheets("Log").Range("AI18").Value = dens
      Sheets("Log").Range("AJ18").Value = mois
      'Sheets("Log").Range("AK18").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL18").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue > 2 And celValue < 2.2 Then
      Sheets("Log").Range("S19") = "Sand Cone"
      Sheets("Log").Range("R19").Value = celValue
      Sheets("Log").Range("AI19").Value = dens
      Sheets("Log").Range("AJ19").Value = mois
      'Sheets("Log").Range("AK19").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL19").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf Value >= 2.2 And Value < 2.4 Then
      Sheets("Log").Range("S20") = "Sand Cone"
      Sheets("Log").Range("R20").Value = celValue
      Sheets("Log").Range("AI20").Value = dens
      Sheets("Log").Range("AJ20").Value = mois
      'Sheets("Log").Range("AK20").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL20").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value



      ElseIf celValue >= 2.4 And celValue <= 2.5 Then
      Sheets("Log").Range("S21") = "Sand Cone"
      Sheets("Log").Range("R21").Value = celValue
      Sheets("Log").Range("AI21").Value = dens
      Sheets("Log").Range("AJ21").Value = mois
      'Sheets("Log").Range("AK21").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL21").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue > 2.5 And celValue < 2.8 Then
      Sheets("Log").Range("S22") = "Sand Cone"
      Sheets("Log").Range("R22").Value = celValue
      Sheets("Log").Range("AI22").Value = dens
      Sheets("Log").Range("AJ22").Value = mois
      'Sheets("Log").Range("AK22").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL22").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue >= 2.8 And celValue <= 3 Then
      Sheets("Log").Range("S23") = "Sand Cone"
      Sheets("Log").Range("R23").Value = celValue
      Sheets("Log").Range("AI23").Value = dens
      Sheets("Log").Range("AJ23").Value = mois
      'Sheets("Log").Range("AK23").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL23").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue > 3 And celValue < 3.2 Then
      Sheets("Log").Range("S24") = "Sand Cone"
      Sheets("Log").Range("R24").Value = celValue
      Sheets("Log").Range("AI24").Value = dens
      Sheets("Log").Range("AJ24").Value = mois
      'Sheets("Log").Range("AK24").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL24").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue >= 3.2 And celValue <= 3.5 Then
      Sheets("Log").Range("S25") = "Sand Cone"
      Sheets("Log").Range("R25").Value = celValue
      Sheets("Log").Range("AI25").Value = dens
      Sheets("Log").Range("AJ25").Value = mois
      'Sheets("Log").Range("AK25").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL25").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue > 3.5 And celValue < 3.7 Then
      Sheets("Log").Range("S26") = "Sand Cone"
      Sheets("Log").Range("R26").Value = celValue
      Sheets("Log").Range("AI26").Value = dens
      Sheets("Log").Range("AJ26").Value = mois
      'Sheets("Log").Range("AK26").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL26").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue >= 3.7 And celValue <= 3.9 Then
      Sheets("Log").Range("S27") = "Sand Cone"
      Sheets("Log").Range("R27").Value = celValue
      Sheets("Log").Range("AI27").Value = dens
      Sheets("Log").Range("AJ27").Value = mois
      'Sheets("Log").Range("AK27").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL27").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue > 3.9 And celValue < 4 Then
      Sheets("Log").Range("S28") = "Sand Cone"
      Sheets("Log").Range("R28").Value = celValue
      Sheets("Log").Range("AI28").Value = dens
      Sheets("Log").Range("AJ28").Value = mois
      'Sheets("Log").Range("AK28").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL28").Value = Sheets("Cone").Range("G48").Offset(0, -i).Value


      ElseIf celValue = 4 Then
      Sheets("Log").Range("S28") = "Sand Cone"
      Sheets("Log").Range("R28").Value = celValue
      Sheets("Log").Range("AI28").Value = dens
      Sheets("Log").Range("AJ28").Value = mois
      'Sheets("Log").Range("AK28").Value = Sheets("Cone").Range("G41").Offset(0, -i).Value
      'Sheets("Log").Range("AL28").Value = Sheets("Cone").Range("G48").Offset(0, -i).Valu
     End If
    End If
Next i
End Sub

1 个答案:

答案 0 :(得分:2)

belValue = Sheets("Cone").Range("G18").Offset(0, -i).Value

您不能从G18向左偏移超过 6 ,但是您的i循环转到8。这是行不通的...