我有两个工作簿,一个工作簿的代码内部为Sheet1(这是我要从中复制值的工作表的代号),另一个工作簿在此示例中定义为“ y”。我想将Sheet1中单元格“ K1-K10”的值复制到工作簿y的单元格(“ F1-F10”)中(例如,我希望F1.Value = K1.Value,F2.Value = K2.Value,等等...)。
两个工作簿均受密码保护,我只尝试从Sheet1复制值(这就是为什么我不取消保护它的原因),但是一旦所有值复制完毕,我想保存,关闭和保护工作簿“ y”并粘贴到其中。
当我点击Sheet1内的Activex Commandbutton时,代码冻结了我的工作簿。我也仔细检查了文件路径和工作表名称,它们是正确的。
我还在下面发布了代码和这两个工作簿的屏幕截图:
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
在这种情况下需要使用While Loop
。
不需要循环,您可以像下面这样一次性传输完整范围的信息: