Vba 生成错误的代码有什么问题?
我不知道这个代码出了什么问题,有人能帮我找出错误吗?。我告诉我错误: 对象不支持此属性或方法Vba 生成错误的代码有什么问题?,vba,excel,Vba,Excel,我不知道这个代码出了什么问题,有人能帮我找出错误吗?。我告诉我错误: 对象不支持此属性或方法 子副本行2() Dim Lastro作为整数 作为整数的Dim-nLastro 变暗Rng As范围 nLastro=ActiveSheet.Cells(Rows.Count,10).End(xlUp).Row Lastro=ActiveSheet.Cells(Rows.Count,9)。End(xlUp)。Row+1 如果Lastro将其更改为相关的工作表 设置oSht=ThisWorkbook.Sh
子副本行2()
Dim Lastro作为整数
作为整数的Dim-nLastro
变暗Rng As范围
nLastro=ActiveSheet.Cells(Rows.Count,10).End(xlUp).Row
Lastro=ActiveSheet.Cells(Rows.Count,9)。End(xlUp)。Row+1
如果Lastro
该代码有几个问题
选项显式
。这将迫使您声明变量。例如,oSht
未声明整数
。您很有可能在xl2007+中遇到错误。将它们声明为Long
ActiveSheet/Select
等行。计数。在兼容模式下使用多个excel文件时,如果您没有完全限定它们,可能会导致错误
选项显式
子副本行2()
将oSht设置为工作表
昏暗的拉斯特罗一样长,nLastro一样长
变暗Rng As范围
“~~>将其更改为相关的工作表
设置oSht=ThisWorkbook.Sheets(“Sheet1”)
与奥什特
nLastro=.Cells(.Rows.Count,10).End(xlUp).Row
Lastro=.Cells(.Rows.Count,9).End(xlUp).Row+1
如果Lastro
该代码有几个问题
选项显式
。这将迫使您声明变量。例如,oSht
未声明整数
。您很有可能在xl2007+中遇到错误。将它们声明为Long
ActiveSheet/Select
等行。计数。在兼容模式下使用多个excel文件时,如果您没有完全限定它们,可能会导致错误
选项显式
子副本行2()
将oSht设置为工作表
昏暗的拉斯特罗一样长,nLastro一样长
变暗Rng As范围
“~~>将其更改为相关的工作表
设置oSht=ThisWorkbook.Sheets(“Sheet1”)
与奥什特
nLastro=.Cells(.Rows.Count,10).End(xlUp).Row
Lastro=.Cells(.Rows.Count,9).End(xlUp).Row+1
如果Lastro
您可以在代码的开头加一个空格,然后逐步执行,直到出现错误。我之前已经提到过,但值得重复:。您已经问了9个问题,但没有接受任何答案。。。为什么不呢?你可以要求提问者接受答案(如果提问者是新的),但你不能强迫他这么做:)REF:@SiddharthRout,这似乎很明显:)你可以在代码的开头稍作停顿,然后逐步执行,直到出现错误。我之前已经提到过,但值得重复:。你问了9个问题,但没有接受任何答案。。。为什么不呢?你可以要求提问者接受答案(如果提问者是新的),但你不能强迫他这么做:)REF:@SiddharthRout,这似乎很明显:)我们应该对这里发布的所有问题发出强制性的“使用选项显式”警报……我们应该对这里发布的所有问题发出强制性的“使用选项显式”警报。。。
Sub copyrow2()
Dim Lastro As Integer
Dim nLastro As Integer
Dim Rng As Range
nLastro = ActiveSheet.Cells(Rows.Count, 10).End(xlUp).Row
Lastro = ActiveSheet.Cells(Rows.Count, 9).End(xlUp).Row + 1
If Lastro < nLastro Then
With oSht = ActiveSheet
Set Rng = oSht.Range("J" & Lastro & ":" & "k" & nLastro)
Rng.Copy
oSht.Range("H" & Lastro).Select
ActiveSheet.Paste
End With
End If
Option Explicit
Sub copyrow2()
Dim oSht As Worksheet
Dim Lastro As Long, nLastro As Long
Dim Rng As Range
'~~> Change this to the relevant sheet
Set oSht = ThisWorkbook.Sheets("Sheet1")
With oSht
nLastro = .Cells(.Rows.Count, 10).End(xlUp).Row
Lastro = .Cells(.Rows.Count, 9).End(xlUp).Row + 1
If Lastro < nLastro Then
Set Rng = .Range("J" & Lastro & ":" & "k" & nLastro)
Rng.Copy .Range("H" & Lastro)
End If
End With
End Sub