亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

EXCEL VBA,從不活動的工作表中獲取范圍。

EXCEL VBA,從不活動的工作表中獲取范圍。

皈依舞 2019-06-05 10:47:32
EXCEL VBA,從不活動的工作表中獲取范圍。當我查看“臨時”工作表時,這個腳本工作得很好。但是當我在另一個工作表中時,復制命令就失敗了。它提供了一個“應用程序定義的或對象定義的錯誤”。Sheets("Temp").Range(Cells(1), Cells(1).End(xlDown)).Copy Sheets("Overview").Range("C40").PasteSpecial我可以用這個腳本代替,但是粘貼它有問題。Sheets("Temp").Columns(1).Copy Sheets("Overview").Range("C40").PasteSpecial我不想激活“臨時”表來獲取這個我還能做什么
查看完整描述

3 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

你的問題是因為Cell中的引用。Range是不合格的,它們指的是默認工作表,該工作表可能不是您想要的工作表。ThisWorkbook模塊、自定義類和用戶表單模塊。ActiveSheet..為Worksheet模塊后面的代碼,就是那個工作表。

對于模塊后面的工作表代碼以外的模塊,您的代碼實際上是這樣說的。

Sheets("Temp").Range(ActiveSheet.Cells(1), ActiveSheet.Cells(1).End(xlDown)).Copy
Sheets("Overview").Range("C40").PasteSpecial

對于模塊后面的工作表代碼,您的代碼實際上是這樣說的。

Sheets("Temp").Range(Me.Cells(1), Me.Cells(1).End(xlDown)).Copy
Sheets("Overview").Range("C40").PasteSpecial

在這兩種情況下,解決方案都是相同的:使用所需的工作簿完全限定范圍引用:

Dim sh1 As WorksheetDim sh2 As WorksheetSet sh1 = ActiveWorkbook.Sheets("Temp")Set sh2 = ActiveWorkbook.Sheets("Overview")With sh1    
.Range(.Cells(1,1), .Cells(1,1).End(xlDown)).CopyEnd Withsh2.Range("C40").PasteSpecial


查看完整回答
反對 回復 2019-06-05
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

我自己也遇到了這樣的問題:我試圖在一個單獨的工作表中搜索一個單元格的顏色是否與列表中的一個單元格的顏色相匹配,并返回一個字符串值:如果您使用.Cells(行、列),您只需要這樣做:Sheets(“Sheetname”).Cells(行,列)引用該范圍的單元格。

我在一個由500個細胞組成的街區循環著,它對我來說運行的速度驚人的快。

我還沒有嘗試過這個.Copy,但是我假設它會以同樣的方式工作。


查看完整回答
反對 回復 2019-06-05
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

這樣就行了,我不喜歡在單元格為空的情況下使用(Xldown)。

Dim lRow As LonglRow = Sheets("Temp").Cells(Cells.Rows.Count, "A").End(xlUp).RowWith Sheets("Temp")
     .Range("A1:A" & lRow).Copy Sheets("Overview").Range("C40")End With

或者如果你只想用列.。

Sheets("Temp").Columns(1).SpecialCells(xlCellTypeConstants).Copy Destination:=Sheets("Overview").Range("C40")


查看完整回答
反對 回復 2019-06-05
  • 3 回答
  • 0 關注
  • 1175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號