Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的VBA代码会根据激活的工作表立即退出?_Vba_Excel - Fatal编程技术网

为什么我的VBA代码会根据激活的工作表立即退出?

为什么我的VBA代码会根据激活的工作表立即退出?,vba,excel,Vba,Excel,我认为这更多的是excel选项和其他东西的问题,但我不确定。我的代码描述:它将时间序列数据写入工作表的前8-9个选项卡中(每个选项卡都是不同的指标),并将其显示在一行中,这样就不用像时间序列格式那样写入数据(每个指标为1-1-2000到1-1-2015),而是所有指标(GGR选项卡有三个滞后和七个前向滞后)在一行中为给定日期编写的代码如下: Sub stuff() Dim rng1 As Range, rng2 As Range, rng3 As Range, rng4 As Ran

我认为这更多的是excel选项和其他东西的问题,但我不确定。我的代码描述:它将时间序列数据写入工作表的前8-9个选项卡中(每个选项卡都是不同的指标),并将其显示在一行中,这样就不用像时间序列格式那样写入数据(每个指标为1-1-2000到1-1-2015),而是所有指标(GGR选项卡有三个滞后和七个前向滞后)在一行中为给定日期编写的代码如下:

Sub stuff()

     Dim rng1 As Range, rng2 As Range, rng3 As Range, rng4 As Range, rng5 As Range, rng6 As Range, rng7 As Range, rng8 As Range
     Dim datenum As Long, Row As Integer, sorteddate As Variant, loc As Integer

     Row = 2

     For j = 2 To 53
         For i = 8 To 275
             If Not (IsEmpty(Cells(i, j).Value)) Then
                 Sheets("Sheet1").Cells(Row, 8) = Sheets("GGR").Cells(i - 1, j).Value
                 Sheets("Sheet1").Cells(Row, 9) = Sheets("GGR").Cells(i - 2, j).Value
                 Sheets("Sheet1").Cells(Row, 10) = Sheets("GGR").Cells(i - 3, j).Value
                 Sheets("Sheet1").Cells(Row, 29) = Sheets("GGR").Cells(i, j).Value
                 Sheets("Sheet1").Cells(Row, 30) = Sheets("GGR").Cells(i + 1, j).Value
                 Sheets("Sheet1").Cells(Row, 31) = Sheets("GGR").Cells(i + 2, j).Value
                 Sheets("Sheet1").Cells(Row, 32) = Sheets("GGR").Cells(i + 3, j).Value
                 Sheets("Sheet1").Cells(Row, 33) = Sheets("GGR").Cells(i + 4, j).Value
                 Sheets("Sheet1").Cells(Row, 34) = Sheets("GGR").Cells(i + 5, j).Value
                 Sheets("Sheet1").Cells(Row, 35) = Sheets("GGR").Cells(i + 6, j).Value
                 Sheets("Sheet1").Cells(Row, 36) = Sheets("GGR").Cells(i + 7, j).Value
                 datenum = Sheets("GGR").Cells(i, 1).Value
                 Sheets("Sheet1").Cells(Row, 1).Value = datenum
                 Set rng1 = Sheets("CPIC").Range("A1:A408")
                 sorteddate = rng1.Value
                 loc = BinarySearch(rng1, datenum)
                 Sheets("Sheet1").Cells(Row, 2) = Sheets("CPIC").Cells(loc, j).Value
                 Sheets("Sheet1").Cells(Row, 3) = Sheets("CPIC").Cells(loc - 1, j).Value
                 Sheets("Sheet1").Cells(Row, 4) = Sheets("CPIC").Cells(loc - 2, j).Value

                 Set rng2 = Sheets("GBGT").Range("A1:A71")
                 sorteddate = rng2.Value
                 loc = BinarySearch(rng2, datenum)
                 Sheets("Sheet1").Cells(Row, 5) = Sheets("GBGT").Cells(loc, j).Value
                 Sheets("Sheet1").Cells(Row, 6) = Sheets("GBGT").Cells(loc - 1, j).Value
                 Sheets("Sheet1").Cells(Row, 7) = Sheets("GBGT").Cells(loc - 2, j).Value

                 Set rng3 = Sheets("GFCF").Range("A5:A264")
                 sorteddate = rng3.Value
                 loc = BinarySearch(rng3, datenum)
                 Sheets("Sheet1").Cells(Row, 11) = Sheets("GFCF").Cells(loc, j).Value
                 Sheets("testsheet").Cells(1, 1).Value = loc
                 Sheets("Sheet1").Cells(Row, 12).Value = Sheets("GFCF").Cells(loc - 1, j).Value
                 Sheets("Sheet1").Cells(Row, 13).Value = Sheets("GFCF").Cells(loc - 2, j).Value

                 Set rng4 = Sheets("M1").Range("A1:A700")
                 sorteddate = rng4.Value
                 loc = BinarySearch(rng4, datenum)
                 Sheets("Sheet1").Cells(Row, 14) = Sheets("M1").Cells(loc, j).Value
                 Sheets("Sheet1").Cells(Row, 15) = Sheets("M1").Cells(loc - 1, j).Value
                 Sheets("Sheet1").Cells(Row, 16) = Sheets("M1").Cells(loc - 2, j).Value

                 Set rng5 = Sheets("M2").Range("A1:A676")
                 sorteddate = rng5.Value
                 loc = BinarySearch(rng5, datenum)
                 Sheets("Sheet1").Cells(Row, 17) = Sheets("M2").Cells(loc, j).Value
                 Sheets("Sheet1").Cells(Row, 18) = Sheets("M2").Cells(loc - 1, j).Value
                 Sheets("Sheet1").Cells(Row, 19) = Sheets("M2").Cells(loc - 2, j).Value

                 Set rng6 = Sheets("CSP").Range("A1:A264")
                 sorteddate = rng6.Value
                 loc = BinarySearch(rng6, datenum)
                 Sheets("Sheet1").Cells(Row, 20) = Sheets("CSP").Cells(loc, j).Value
                 Sheets("Sheet1").Cells(Row, 21) = Sheets("CSP").Cells(loc - 1, j).Value
                 Sheets("Sheet1").Cells(Row, 22) = Sheets("CSP").Cells(loc - 2, j).Value

                 Set rng7 = Sheets("UNR").Range("A1:A272")
                 sorteddate = rng7.Value
                 loc = BinarySearch(rng7, datenum)
                 Sheets("Sheet1").Cells(Row, 23) = Sheets("UNR").Cells(loc, j).Value
                 Sheets("Sheet1").Cells(Row, 24) = Sheets("UNR").Cells(loc - 1, j).Value
                 Sheets("Sheet1").Cells(Row, 25) = Sheets("UNR").Cells(loc - 2, j).Value

                 Set rng8 = Sheets("MKT").Range("A1:A223")
                 sorteddate = rng8.Value
                 loc = BinarySearch(rng8, datenum)
                 Sheets("Sheet1").Cells(Row, 26) = Sheets("MKT").Cells(loc, j).Value
                 Sheets("Sheet1").Cells(Row, 27) = Sheets("MKT").Cells(loc - 1, j).Value
                 Sheets("Sheet1").Cells(Row, 28) = Sheets("MKT").Cells(loc - 2, j).Value
                 Row = Row + 1
             End If
         Next i
     Next j
End Sub


Function BinarySearch(rng As Range, searchValue As Long) As Integer

     'dimension these as long to avoid possible integer
     'overflow errors for large lists
     Dim curIndex As Long
     Dim firstIndex As Integer
     Dim lastIndex As Integer

     Dim nextMiddle As Long
     Dim strValue As Long
     Dim MyCell As Variant
     Dim i As Integer

     i = 0

     For Each MyCell In rng
         If MyCell < searchValue Then
             i = i + 1
         End If
     Next MyCell

     BinarySearch = i  

End Function
Sub-stuff()
变暗rng1为量程、rng2为量程、rng3为量程、rng4为量程、rng5为量程、rng6为量程、rng7为量程、rng8为量程
Dim datenum为长,行为整数,sorteddate为变量,loc为整数
行=2
对于j=2到53
对于i=8到275
如果不是(IsEmpty(单元格(i,j).Value)),则
板材(“板材1”).单元(第8行)=板材(“GGR”).单元(i-1,j).值
板材(“板材1”).单元(第9行)=板材(“GGR”).单元(i-2,j).值
板材(“板材1”).单元(第10行)=板材(“GGR”).单元(i-3,j).值
板材(“板材1”).单元(第29行)=板材(“GGR”).单元(i,j).值
板材(“板材1”).单元(第30行)=板材(“GGR”).单元(i+1,j).值
板材(“板材1”).单元(第31行)=板材(“GGR”).单元(i+2,j).值
板材(“板材1”).单元(第32行)=板材(“GGR”).单元(i+3,j).值
板材(“板材1”).单元(第33行)=板材(“GGR”).单元(i+4,j).值
板材(“板材1”).单元(第34行)=板材(“GGR”).单元(i+5,j).值
板材(“板材1”).单元(第35行)=板材(“GGR”).单元(i+6,j).值
板材(“板材1”).单元(第36行)=板材(“GGR”).单元(i+7,j).值
datenum=Sheets(“GGR”).单元格(i,1).值
工作表(“Sheet1”)。单元格(第1行)。值=datenum
设置rng1=板材(“CPIC”)。范围(“A1:A408”)
sorteddate=rng1.Value
loc=BinarySearch(rng1,datenum)
板材(“板材1”).单元(第2行)=板材(“CPIC”).单元(loc,j).值
板材(“板材1”).单元(第3行)=板材(“CPIC”).单元(loc-1,j).值
板材(“板材1”).单元(第4行)=板材(“CPIC”).单元(loc-2,j).值
设置rng2=板材(“GBGT”)。范围(“A1:A71”)
sorteddate=rng2.Value
loc=BinarySearch(rng2,datenum)
板材(“板材1”).单元(第5行)=板材(“GBGT”).单元(loc,j).值
板材(“板材1”).单元(第6行)=板材(“GBGT”).单元(loc-1,j).值
板材(“板材1”).单元(第7行)=板材(“GBGT”).单元(loc-2,j).值
设置rng3=板材(“GFCF”)。范围(“A5:A264”)
sorteddate=rng3.值
loc=BinarySearch(rng3,datenum)
板材(“板材1”).单元(第11行)=板材(“GFCF”).单元(loc,j).值
表(“测试表”)。单元格(1,1)。值=loc
表格(“表格1”).单元格(第12行)。数值=表格(“GFCF”).单元格(loc-1,j)。数值
表格(“表格1”).单元格(第13行)。数值=表格(“GFCF”).单元格(loc-2,j)。数值
设置rng4=板材(“M1”)。范围(“A1:A700”)
sorteddate=rng4.值
loc=BinarySearch(rng4,datenum)
板材(“板材1”).单元(第14行)=板材(“M1”).单元(loc,j).值
板材(“板材1”).单元(第15行)=板材(“M1”).单元(loc-1,j).值
板材(“板材1”).单元(第16行)=板材(“M1”).单元(loc-2,j).值
设置rng5=板材(“M2”)。范围(“A1:A676”)
sorteddate=rng5.值
loc=BinarySearch(rng5,datenum)
板材(“板材1”).单元(第17行)=板材(“M2”).单元(loc,j).值
板材(“板材1”).单元(第18行)=板材(“M2”).单元(loc-1,j).值
板材(“板材1”).单元(第19行)=板材(“M2”).单元(loc-2,j).值
设置rng6=板材(“CSP”)。范围(“A1:A264”)
sorteddate=rng6.值
loc=BinarySearch(rng6,datenum)
板材(“板材1”).单元(第20行)=板材(“CSP”).单元(loc,j).值
板材(“板材1”).单元(第21行)=板材(“CSP”).单元(loc-1,j).值
板材(“板材1”).单元(第22行)=板材(“CSP”).单元(loc-2,j).值
设置rng7=板材(“UNR”)。范围(“A1:A272”)
sorteddate=rng7.值
loc=BinarySearch(rng7,datenum)
板材(“板材1”).单元(第23行)=板材(“UNR”).单元(loc,j).值
板材(“板材1”).单元(第24行)=板材(“UNR”).单元(loc-1,j).值
板材(“板材1”).单元(第25行)=板材(“UNR”).单元(loc-2,j).值
设置rng8=板材(“MKT”).范围(“A1:A223”)
sorteddate=rng8.值
loc=BinarySearch(rng8,datenum)
板材(“板材1”).单元(第26行)=板材(“MKT”).单元(loc,j).值
板材(“板材1”).单元(第27行)=板材(“MKT”).单元(loc-1,j).值
板材(“板材1”).单元(第28行)=板材(“MKT”).单元(loc-2,j).值
行=行+1
如果结束
接下来我
下一个j
端接头
函数BinarySearch(rng作为范围,searchValue作为长度)作为整数
'尽可能长地标注这些值,以避免可能的整数
'大型列表的溢出错误
暗库林德克斯一样长
将第一个索引设置为整数
将索引设置为整数
暗下中长
暗标准值与长标准值相同
作为变种的暗菌丝体
作为整数的Dim i
i=0
对于rng中的每个迈塞尔
如果MyCell
我知道我的代码不是
If Not (IsEmpty(Cells(i, j).Value)) Then