簡體   English   中英

對象'_worksheet的方法'范圍'失敗

[英]Method 'range' of object'_worksheet failed

我在 VBA 中有此代碼,我只是按照有關代碼相同代碼的教程進行操作,但結果始終顯示“對象'_worksheet 的方法'范圍'失敗”此代碼有什么問題嗎?

KktkRow = .Range("B5").Value

    For KktkCol = 1 To 39
    .Range(Sheet4.Cells(1, KktkCol).Value).Value = Sheet4.Cells(KktkRow, KktkCol).Value
    Next KktkCol
.Range(Sheet4.Cells(1, KktkCol).Value).Value = Sheet4.Cells(KktkRow, KktkCol).Value

某處有一個不適合Sheet4With塊。 刪除Sheet4限定符並保留. 點運算符使其看起來像這樣(假設With塊不適用於Sheet4 ,但源值在該表上):

.Range(.Cells(1, KktkCol).Value).Value = Sheet4.Cells(KktkRow, KktkCol).Value

這樣, .Cells成員調用將始終針對符合此.Range條件的同一工作表進行; 每當您使用內部.Cells調用.Range時,請確保內部.Cells與外部.Range位於同一工作表上。

這與隱式 ActiveSheet 引用引起的常見問題非常相似,當內部.Cells調用根本不合格時:

.Range(Cells(1, KktkCol).Value).Value = .Cells(KktkRow, KktkCol).Value
       ^^^^^ if the ActiveSheet isn't the same as the parent of .Range ~> error 1004

如果With塊不是Sheet4但目標單元格是,那么你需要用它來限定.Range

Sheet4.Range(Sheet4.Cells(1, KktkCol).Value).Value = Sheet4.Cells(KktkRow, KktkCol).Value

如果With塊用於Sheet4 ,那么我們缺少上下文。 正如John Coleman 指出的那樣Sheet4.Cells(KktkRow, KktkCol)看起來很可疑(您是在從單元格中讀取行號嗎?)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM