我将尽力用英语尽力解释。
我想在excel中的特定单元格中输入变量作为时间值。我有时间变量计算排序。它找到了特定的单元格来输入那个我有困难的变量。
我希望放置时间值的目标单元格被确定为Lastrow函数的偏移量。 e.g:
If Range("AC1").Value = 30 Then
LastRow.Offset(16, 1).Value = TextBox2.Text
Else If Range("AC1").Value = 33 Then
LastRow.Offset(20, 1).Value = TextBox2.Text
etc. etc
所以,如果我昏暗作为范围并且让我们说(" AC1")。值= 30
如何获取已输入的值" TextBox2.Text"找到它的方式到LastRow.Offset(16,1)的位置或者如果变量在哪里,如何找到对应那个位置的特定偏移?
我真的希望这个问题有道理。
您好, 很明显,我的剪切和粘贴没有奏效,我只是不知道找出导致问题的代码位 我在Textbox2中输入一个3或4位数字。验证完成(Works) " AC1"的价值确定在电子表格中确定值的偏移粘贴位置。 (作品) 最后一列是根据电子表格中的电池范围名称确定的。 (作品) 现在我想在一个单元格中输入时间值,从那个" LastColl"位置,根据" iOffset"值。我还想将此值格式化为分钟和秒。 我已经摆弄了代码,我的想法是将范围定义为" TimeCell"电子表格中的时间输入单元格,以便我可以将时间值粘贴到特定范围 现在的问题是,将TextBox2值粘贴到该单元格中。
Dim tbV As String
Dim sV As String
Dim mV As String
Dim TimeCell As Range
Dim LastColl As Range
tbV = TextBox2.Text
If Len(tbV) > 4 Or Len(tbV) < 2 Or Not IsNumeric(tbV) Then
MsgBox "wrong"
Exit Sub
End If
sV = Right(tbV, 2)
mV = Left(tbV, Len(tbV) - 2)
Dim iOffset As Integer
Select Case Range("AC1").Value
Case Is = 30: iOffset = 16
Case Is = 33: iOffset = 20
Case Is = 22: iOffset = 14
End Select
Set LastColl = Range("Battery" & BatteryNumber).End(xlToRight)
Set TimeCell = Range(LastCol.Offset(iOffset, 0))
TimeCell.NumberFormat = "m:ss"
TimeCell.Value = TimeSerial(0, Val(mV), Val(sV))
答案 0 :(得分:0)
而不是一堆If Then Else
语句,Select Case
可能更容易:
Dim iOffset as Integer
Select Case Sheet1.Range("AC1").Value2 'I assume it's Sheet1, but change as needed
Case Is = 30: iOffset = 16
Case Is = 33: iOffset = 20
Case Is = ??: iOffset = ??
'... keep going
End Select
Dim LastRow as Range
Set LastRow = Sheet1.Range("Battery" & BatteryNumber).End(xlToRight)
'interesting that you call it `LastRow`, but it refers to the last **column**
Sheet1.LastRow.Offset(iOffset,1).Value = TextBox2.Text