早教吧 育儿知识 作业答案 考试题库 百科 知识分享

如何让这一代码实现k列数字可以延伸到最后即k65536处,并自动转入下一列?经过多次运算,k列号码都是运算到k32767处停止,我想使它可以计算到最后ige单元格,并跳入下列继续PrivateSubWorksheetSele

题目详情
如何让这一代码实现k列数字可以延伸到最后即k65536处,并自动转入下一列?
经过多次运算,k列号码都是运算到k32767处停止,我想使它可以计算到最后ige单元格,并跳入下列继续 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Line1
Set Target = Target.Range("A1")
If Target.Column = 1 Then
Dim x,Z,y,tm,i As Integer
x = 1
Z = 1
i = 1If x >= Target.Row Then
MsgBox "ê?μ′óóún£?a",vbOKOnly,"No"
Else
Do While Target.Offset(-x,0).Formula = 1
x = x + 1
Loop
Do While True
Do
Calculate
Loop Until Cells(Target.Row - x,1) = 0 And WorksheetFunction.Sum(Range(Cells(Target.Row - x + 1,1),Cells(Target.Row,1))) = x And WorksheetFunction.Sum(Range(Cells(Target.Row,1),Cells(Target.Row + Z,1))) = Z + 1
Columns("b:b").Clear
y = WorksheetFunction.Match(0,Range(Cells(Target.Row + 1,1),"a65536"),0) - 1
Range("K" & i) = x + y
i = i + 1Application.Wait Now
LoopEnd If
End If
Line1:End Sub
▼优质解答
答案和解析
代码里的 Application.Wait Now没用,等到现在等于没等(现在就是现在).
另外运行Columns("b:b").Clear后你前面的代码白执行了,因为RAND()函数又重新计算了.
我不能理解你整个代码到底想实现什么.转列的方法一定有的.大约是这样:
dim col as integer
col = 11 '第K列的意思(第11列)
.中间那堆代码
然后把
Range("K" & i) = x + y
替换为
if i = 32767 then
col = col + 1
i = 1
end if
cells(i, col) = x+y