[英]VBA Runtime Error 1004 "Application-defined or Object-defined error" when trying to assign values to a range
[英]VBA Runtime Error 1004 “Application-defined or Object-defined error” when trying to assign value to a variable
第一個我解釋我正在嘗試做的事情。 我有一個包含許多工作表的工作簿,每個工作簿都有許多命名范圍。 我想遍歷特定工作表上的命名范圍,然后隱藏/取消隱藏它們(如果它具有特定名稱)。 一開始我想隔離工作表,但我遇到了問題。 我正在嘗試獲取工作表的名稱,范圍已打開並將該名稱分配給變量。 這是代碼的一部分,我遇到了問題:
Dim rng as Name
Dim shP as String
for each rng in ThisWorkbook.Names
shp = rng.RefersToRange.Parent.Name 'here i get the error
... rest of the code ...
如果我只是Debug.Print rng.RefersToRange.Parent.Name
而不是在該行中,我會立即在 window 中打印出工作表名稱。 我也嘗試將Dim shP as Variant
進行調暗,但沒有幫助。
預先感謝您的回答。
您可能在工作簿中有一個與單元格塊不對應的名稱。 在這里,我將 Name when
分配給公式=now()
如果我運行:
Sub WhatsInaName()
Dim nm As Name, s As String
For Each nm In ThisWorkbook.Names
MsgBox nm.RefersToRange.Parent.Name
Next nm
End Sub
我也得到一個1004
您應該首先運行:
Sub listum()
With ActiveWorkbook
If .Names.Count > 0 Then
For i = 1 To .Names.Count
MsgBox (i & " " & .Names(i).Name)
Next
End If
End With
End Sub
驗證每個Name
是一個單元塊。
如果您要獲取工作表,則需要使用Worksheet
object。
Option Explicit
Sub Test()
Dim rng As Name
Dim shP As Worksheet
For Each rng In ThisWorkbook.Names
Set shP = rng.RefersToRange.Parent 'here i get the error
'... rest of the code ...
Next rng
End Sub
然后您可以像使用工作表一樣使用shP
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.