Excel “问题”;方法';价值';对象的';范围';“失败”;错误
这是一个主要用来理解和学习的问题,然后找到解决方案,因为我知道问题的原因并找到了解决办法 我收到运行时错误“-2147417848(80010108)”:对象“范围”的方法“值”失败 我有一个带有列表框的主用户表单,它从表中填充。然后,我有一个辅助用户表单在所述表中创建新条目。该表位于我的工作表shData(“Daten”)中,称为“主数据”。如果只是运行第二个表单来创建新条目,则一切正常。但是如果我从主窗体开始第二个窗体,就会得到错误 这是主窗体中的代码Excel “问题”;方法';价值';对象的';范围';“失败”;错误,excel,vba,Excel,Vba,这是一个主要用来理解和学习的问题,然后找到解决方案,因为我知道问题的原因并找到了解决办法 我收到运行时错误“-2147417848(80010108)”:对象“范围”的方法“值”失败 我有一个带有列表框的主用户表单,它从表中填充。然后,我有一个辅助用户表单在所述表中创建新条目。该表位于我的工作表shData(“Daten”)中,称为“主数据”。如果只是运行第二个表单来创建新条目,则一切正常。但是如果我从主窗体开始第二个窗体,就会得到错误 这是主窗体中的代码 Private Sub newEntr
Private Sub newEntryButton_Click()
newEntry.Show
End Sub
Private Sub UserForm_Activate()
mainListUpdate
End Sub
这是第二种形式的代码
Private Sub doneButton_Click()
Dim n As Long
n = cRow + 1
shData.Range("A" & n).Value = nameBox.Value
shData.Range("B" & n).Value = paraBox.Value
shData.Range("C" & n).Value = hStartBox.Value
shData.Range("D" & n).Value = bdayBox.Value
If OptionButtonStat.Value = True Then
shData.Range("E" & n).Value = "Ja"
shData.Range("G" & n).Value = statPlaceBox.Value
ElseIf OptionButtonAmb.Value = True Then
shData.Range("F" & n).Value = "Ja"
End If
Me.Hide
End Sub
Private Sub OptionButtonStat_Change()
If OptionButtonStat.Value = True Then
Me.statPlaceBox.Visible = True
Me.statPlaceLab.Visible = True
Else
Me.statPlaceBox.Visible = False
Me.statPlaceLab.Visible = False
End If
End Sub
Public Sub UserForm_Activate()
Me.statPlaceBox.Visible = False
Me.statPlaceLab.Visible = False
End Sub
这是模块中的代码
Public cRow As Long
Public cCol As Long
Public Sub mainListUpdate()
If shData.FilterMode = True Then
shData.ShowAllData
End If
cRow = shData.Range("A1").CurrentRegion.Rows.Count
cCol = shData.Range("A1").CurrentRegion.Columns.Count
formMain.listMain.ColumnCount = cCol
formMain.listMain.ColumnHeads = True
formMain.listMain.RowSource = "mainData"
End Sub
该错误发生在次级表单代码的以下行:shData.Range(“A”&n).Value=nameBox.Value
。如果我将模块代码中的formMain.listMain.RowSource=“mainData”
更改为formMain.listMain.RowSource=“Daten!A2:G”
,则问题消失。同样,代码可以将表用作行源,如果我只使用第二个表单,只需要添加cRow=shData.Range(“A1”).CurrentRegion.Rows.Count
我希望,我解释得足够好了。谁能解释一下,我为什么会有这个问题?搜索该问题非常令人沮丧,我真的很想使用原始代码。发生错误时
n
的值是多少?11,我在表中有10行。当发生错误时,如果您:,您能在即时窗口中看到发生的情况吗?shData.Range(“a11”).address
如果我把它放在shData.Range(“A”&n).Value=nameBox.Value前面,那么该行就会发生错误。当我将鼠标悬停在那条线上时,我看到shData.Range(“a11”).Address=“$A$11”
老实说,我认为您的Office安装可能有问题。您能否尝试在其他计算机上运行此工作簿,以查看问题是否可以重现?