excel - 使用嵌套的 Do While 语句运行 For 循环,但为什么我的代码会冻结?
问题描述
我有两个工作簿,一个包含代码 INSIDE Sheet1(这是我要从中复制值的工作表的代号),另一个工作簿在此示例中定义为“y”。我想将 Sheet1 中单元格“K1-K10”的值复制到工作簿 y 的单元格(“F1-F10”)中(例如,我想要 F1.Value=K1.Value,F2.Value = K2.Value, ETC...)。
两个工作簿都受密码保护,我只是想从 Sheet1 复制值(这就是我不取消保护它的原因),但是一旦所有值复制并粘贴,我想保存、关闭和保护工作簿“y”进去。
当我点击 Sheet1 中的 Activex 命令按钮时,代码冻结了我的工作簿。我也仔细检查了文件路径和工作表名称,它们是正确的。
我还在下面发布了代码和两个工作簿的屏幕截图:
Private Sub CommandButton1_Click()
Dim y As Workbook
Dim i As Integer
Set y = Workbooks.Open(Filename:="\\FILEPATH\Test 2.xlsm", Password:="Swarf")
With y
For i = 1 To 10
Do While Cells(i, 11).Value <> ""
.Sheets("MyTest2").Unprotect "Swarf"
.Sheets("Mytest2").Cells(i, 6).Value = Sheet1.Cells(i, 11).Value
Loop
Next i
.Password = "Swarf"
.Save
.Close False
End With
End Sub
解决方案
无需循环,您可以一次性传输完整范围的信息,例如:
With y
.Sheets("MyTest2").Unprotect "Swarf"
.Sheets("Mytest2").Range("F1:F10").Value = Worksheets("Sheet1").Range("K1:K10").Value
End With
如果您确实在复制空单元格时遇到问题,那么有很多关于查找列的最后一行的帖子
推荐阅读
- java - 扫描仪类(system.in)在 android studio 中不起作用,并且 build.gradle 中发生了变化
- python - 使用 matplotlib.widgets 进行交互式绘图的绘图阻塞问题
- python - 从给定的 I 和 D 序列中形成最小数
- c# - 过滤嵌套属性
- java - 文件到字符串空指针异常
- r - R read_excel 读取数值数据不正确
- linux - 图像如何在终端中显示
- pandas - 通过 dask 读取带有多行文本列的 csv
- c# - 为什么 C# System.Decimal(十进制)“浪费”位?
- python - 使用连接和过滤器的 Flask Sqlalchemy 查询