今天我尝试在VBA编辑器(项目窗口)中使用工作表(“sheet_name”)替换其名称,该编辑器也匹配同名对象。例如,我在Excel中查看时有一个名为“STRUCTURE”的标签,但它实际上在VBA编辑器中命名为“Saisie”。在下面的代码中,如果将Worksheets("STRUCTURE")
替换为Saisie
,它应该给出相同的结果,但PasteSpecial操作不会粘贴任何内容,也不会产生错误消息。我已尝试使用“执行”窗口检查是否引用了正确的范围(调用cell.Address
返回正确的地址)并在正确的工作表上(调用Saisie.Name
返回“STRUCTURE”)。
两种符号之间的语义是否存在差异,或者我在其他地方搞砸了吗?
以下是使用工作表(“STRUCTURE”)的工作代码,在替换为Saisie
时会中断。
Public Sub ForcerFormules()
Dim cell As Range, last_row As Range
Set last_row = Saisie.Range("B65535").End(xlUp).EntireRow
'Ligne 10 = ligne des titres = saisie vide donc on ignore
If last_row.Row <> 10 Then
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each cell In Worksheets("STRUCTURE").Range("A8:DB8")
If cell.Formula <> "" Then
cell.Copy
Worksheets("STRUCTURE").Range(cell.Offset(3, 0), Intersect(cell.EntireColumn, last_row)).PasteSpecial xlPasteFormulas
End If
Next cell
Worksheets("STRUCTURE").Range("A1").Activate
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End If
End Sub
答案 0 :(得分:0)
如果您遇到问题,请添加:
Dim Saisie As Worksheet
Set Saisie = Sheets("STRUCTURE")
之前
Set last_row = Saisie.Range("B65535").End(xlUp).EntireRow