我有两列:我试图遍历每一列,以找到要放在框中的单词。接下来,我想在其中写入相应的行号 该单元格位于当前单元格左侧的两个单元格中。 activecell.offset一直给我零,我不知道出了什么问题
The jumps
quick Over
brown nine
fox lazy
dogs
Sub AddRow()
Dim i As Integer, j As Integer, HT As Variant, nr As Integer, nc As Integer, lrow As Integer, lrows As Variant, rng1 As Range, rng2 As Range, row As Integer, rows As Integer
nr = Selection.rows.Count
nc = Selection.Columns.Count
HT = InputBox("Enter column letter:")
Set rng1 = Range("E1:E100")
Set rng2 = Range("F1:F100")
For i = 1 To nr
For j = 1 To nc
If ActiveCell(i, j) = HT And ActiveCell.Column = 1 Then
lrow = Application.WorksheetFunction.Match(HT, Range("E1:E200"), 0)
Else
If ActiveCell(i, j) = HT And ActiveCell.Column = 2 Then
lrow = Application.WorksheetFunction.Match(HT, Range("F1:F200"), 0)
End If
ActiveCell.Offset(0,2).Value = lrow
End If
Next j
Next i
End Sub
答案 0 :(得分:0)
改为使用范围。
QHarr对您的问题的评论正在按计划进行。
范围代表Excel工作表中的单个单元格或一组单元格,这是处理工作表中单元格的最佳方法。
您可以通过Excel坐标来指定范围,例如。 “ A1”或行号和列号。
这是获取范围,然后使用它来获取信息或使用它来移动到其他单元格的快速示例。
我包括对Offset()的正确使用。现在您将看到QHarr为什么要使用范围的原因,因为您需要一个Range对象才能使Offset()起作用。
...哦,Range.Value2给出单元格中的值。
Option Explicit
Sub main()
Dim HT As String
Dim myRange As Range
Dim ColumnNumber As Integer
Dim myNewRange As Range
HT = InputBox("Enter column letter:")
'range returns a cell
Set myRange = Range(HT & "1")
'get the column of the cell.
ColumnNumber = myRange.Column
MsgBox ColumnNumber
'get the cell, one cell over and one cell down
Set myNewRange = myRange.Offset(1, 1)
MsgBox "My New Range is at " & myNewRange.Row & " - " & myNewRange.Column
End Sub