使用lastRow查找单元格位置以输入值

时间:2016-01-05 15:30:26

标签: excel-vba range row vba excel

我将尽力用英语尽力解释。

我想在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))

1 个答案:

答案 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