excel - 在excel中运行循环功能时遇到问题
问题描述
我得到了这段代码,但它似乎并没有一直运行到最后。卡住了,调试器只会突出显示 Loop 关键字或i = i + 1
行。我究竟做错了什么?
我尝试了If
声明,For … Next
但似乎没有任何效果。
Sub Macro1()
'
' Macro1 Macro
'
Dim i As Integer
i = 2
Do Until i > 586
Range("B2").Formula = "=sheet2!CS" & i & ""
Range("B3").Formula = "=sheet2!CR" & i & ""
Range("B4").Formula = "=sheet2!CQ" & i & ""
Range("B5").Formula = "=sheet2!CP" & i & ""
Range("B6").Formula = "=sheet2!CO" & i & ""
Range("B7").Formula = "=sheet2!CN" & i & ""
Range("B8").Formula = "=sheet2!CM" & i & ""
Range("B9").Formula = "=sheet2!CL" & i & ""
Range("B10").Formula = "=sheet2!CK" & i & ""
Range("B11").Formula = "=sheet2!CJ" & i & ""
Range("B12").Formula = "=sheet2!CI" & i & ""
Range("B13").Formula = "=sheet2!CH" & i & ""
Range("B14").Formula = "=sheet2!CG" & i & ""
'Copy and PasteSpecial a Range
Range("AL18").Copy
Worksheets("Sheet2").Range("CV" & i & "").PasteSpecial Paste:=xlPasteValues
i = i + 1
Loop
End Sub
解决方案
当我测试它时,代码似乎没有任何问题..
这是您的代码,尽管它变得更短,看看它是否有效。
Sub Macro1()
Dim i As Long, j As Long
Dim colltr As String
For i = 2 To 586
For j = 2 To 14
colltr = Split(Cells(1, 99 - j).Address, "$")(1)
Range("B" & j).Formula = "=sheet2!" & colltr & i
Next j
'Copy and PasteSpecial a Range
Worksheets("Sheet2").Range("CV" & i & "").value = Range("AL18").value
Next i
End Sub
推荐阅读
- r - 存储 azuremlsdk 的 azure 凭据最佳实践
- c# - 如何从 Owin 身份验证流程外部访问 OWIN 身份验证选项
- c - 为什么并行块不重用堆栈内存位置?
- django - Django Graphql 的自动刷新令牌中间件
- tensorflow - Tensorflow Lite GPU 委托:错误:tensorflow/lite/core/subgraph.cc:1169 node_index >= 0 不正确
- swift - SwiftUI 视图不随数据更改而更新?
- wordpress - 在 WordPress 上显示的可转换 id="114332"
- ocaml - 使用模块无限循环 OCaml 类型检查器是如何工作的?
- javascript - React Project ESlint 错误“意外的令牌导出”
- firebase - 查询firestore中的对象数组