Excel 如何解决VBA错误“无法获取范围类的选定属性”
我是VBA新手,刚开始自学。 当我尝试运行我的程序时Excel 如何解决VBA错误“无法获取范围类的选定属性”,excel,vba,Excel,Vba,我是VBA新手,刚开始自学。 当我尝试运行我的程序时 Sub cpy() range("k1:k12").Select Selection.copy Application.Goto Worksheets("Sheet1").range("m4").Select ActiveSheet.Paste End Sub 。。。出现以下错误:无法获取range类的选定属性。 所以我试着分别运行出错线路: Sub
Sub cpy()
range("k1:k12").Select
Selection.copy
Application.Goto Worksheets("Sheet1").range("m4").Select
ActiveSheet.Paste
End Sub
。。。出现以下错误:无法获取range类的选定属性。
所以我试着分别运行出错线路:
Sub cck()
Application.Goto Worksheets("Sheet1").range("m4").Value
End Sub
它显示以下错误:运行时错误“1004”:引用无效
Excel文件是新的,包含3张图纸,图纸名称未更改。我试着在Sheet3上运行上面的代码。Application.Goto本身已经选择了,所以像这样在末尾附加Select是没有意义的。Goto执行一个操作-它进入某个范围,而不返回您需要选择的范围
无论如何,解决错误的最佳方法是从代码中删除Select。很少需要它。看
即使这个链接的问题是关于Select的,它也适用于Application.Goto。Select和Goto都会导致意大利面代码。Dijkstra写了一篇所有程序员都应该至少读一次的经典文章。他没有应用程序。当然,Goto在脑海中,但它仍然适用。复制范围的三种方法
,
在这个阶段,一步一步地进行:使用Option Explicit,将变量(如Dim wb)声明为工作簿,并创建引用以设置所有对象(如Set ws=ThisWorkbook)。
选项显式
子副本范围副本
'工作簿
将wb设置为工作簿:设置wb=ThisWorkbook包含此代码的工作簿
"来源:
将sws标注为工作表:设置sws=wb.WorksheetsSheets3
尺寸srg作为范围:设置srg=sws。范围K1:K12
“目的地
将dws标注为工作表:设置dws=wb.WorksheetsSheets1
尺寸dCell作为范围:设置dCell=dws.RangeM4
'复制值、公式、格式
复制数据单元
'仅按赋值复制,但复制速度非常快
'dCell.Resizesrg.Rows.Count=srg.Value
'复制/粘贴多个选项,但目标工作表变为活动状态
“srg.Copy
“dCell.PasteSpecial”有许多选项
'Application.CutCopyMode=False
端接头
您好,从您的代码中,我了解到您正在尝试粘贴复制的值k1到k12到M4及其子序列列。如果是,请使用工作表sheets1.RangeM4.PasteSpecial Paste:=xlPasteValues。希望它能帮助你。谢谢