【发布时间】:2017-02-01 15:42:13
【问题描述】:
我正在尝试创建一个用户表单,该表单将传播带有信息的 excel 工作表的第一个可用行。我正在努力使范围正确,并且表单当前显示“下标超出范围”; “运行时错误 9”。 'if' 语句似乎也有问题,但遵循在线标准建议似乎无助于解决问题。
如果有人知道我哪里出错了(我对此很陌生),那就太好了。
Private Sub UserForm_Initialize()
BusinessAreaBox.List = Array("option one", "option two")
End Sub
Private Sub CommandButton1_Click()
Dim RowCount As Long
RowCount = Sheets("Sheet1").Range.Sheets("Sheet1").Cells(2, "A")
With ThisWorkbook.Sheets("Sheet1").Range("A2")
.Offset(RowCount, 0).Value = BusinessArea1.Value
.Offset(RowCount, 1).Value = BusinessContact1.Value
.Offset(RowCount, 2).Value = LPSContact1.Value
.Offset(RowCount, 4).Value = ProjectedFTE1.Value
.Offset(RowCount, 5).Value = DateOfMostRecentMeeting1.Value
.Offset(RowCount, 6).Value = FTEComment1.Value
.Offset(RowCount, 7).Value = ProposedMove1.Value
.Offset(RowCount, 8).Value = DeskUtilisation1.Value
.Offset(RowCount, 9).Value = OtherComment1.Value
.Offset(RowCount, 10).Value = Actions1.Value
If RegularMeeting1.Value = True Then
.Offset(RowCount, 3).Value = "Yes"
Else
.Offset(RowCount, 3).Value = "No"
End If
RegularMeeting1.Value = True Or False
End With
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
【问题讨论】:
-
你想用这条线做什么:
RowCount = Sheets("Sheet1").Range.Sheets("Sheet1").Cells(2, "A")?我猜这个是黄色的? -
那是错误的来源。我试图让它将第一组信息填充到“工作表 1”、第 2 行,然后从该点开始填充到第一个可用行。我必须承认,我从网上的一个例子中提取了那句话,但我看不出这句话应该读什么——任何想法都会非常感激。
-
等一下,你要写到
Sheet1!A2吗?那你为什么要从中阅读(以一种荒谬的扭曲不可能工作的方式)?如果你想写入到一个单元格,那么单元格的值需要在赋值的left-hand-side;真的,这与从变量读取/写入变量没有什么不同。 -
@Mat'sMug;如果
RowCount = 0,那么她会写信给Sheet1!A2.Offset(RowCount, 0).Value,如果RowCount <> 0她不是。
标签: vba excel userform subscript