excel - VBA Selection.Find 返回偏移单元格
问题描述
我的代码有问题。我试图通过使用 find 函数来识别正确的行号将值插入“数据库”。当我运行代码时,查找函数返回下一个行号,即。serchname 在第 300 行,但数据插入在第 301 行。
我使用的代码如下:
For Each Cell In Workbooks(controlfile).Sheets("Lab").Range("B9:B56")
If Cell.Value <> "" Then
'Range("N" & latestRow).Value = Right(DataArray(1), 4) & Right(DataArray(2), 4)
'Range("N" & latestRow).NumberFormat = "00000000"
søgeOrd = Right(Cell.Value, 4) & Right(Cell.Offset(0, 1), 4)
Workbooks(controlfile).Sheets("Lab").Range("A1").Value = søgeOrd
Workbooks(controlfile).Sheets("Lab").Range("A1").NumberFormat = "00000000"
LinjeL = Cell.Row
FGM = Workbooks(controlfile).Sheets("Lab").Range("F" & LinjeL).Value
STA = Workbooks(controlfile).Sheets("Lab").Range("I" & LinjeL).Value
BMK = Workbooks(controlfile).Sheets("Lab").Range("J" & LinjeL).Value
VK = Workbooks(controlfile).Sheets("Lab").Range("L" & LinjeL).Value
DP = Workbooks(controlfile).Sheets("Lab").Range("M" & LinjeL).Value
SNB = Workbooks(controlfile).Sheets("Lab").Range("N" & LinjeL).Value
Workbooks(controlfile).Sheets("Lab").Range("A1").ClearContents
'find søgeord i database og indsæt de værdier som er fundet i lab
Workbooks(FileName).Sheets("Database").Activate
Columns("N:N").Select
Set cellD = Selection.Find(What:=Workbooks(controlfile).Sheets("Lab").Range("A1").Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not cellD Is Nothing Then LinjeD = cellD.Row
If Range("E" & LinjeD).Value <> "" Then
'kopier alle data til fejllog hvis der allerede er data
Range("A" & LinjeD).Select
ActiveCell.EntireRow.Copy
Workbooks(FileName).Worksheets("Fejllog").Activate
LastLine = Workbooks(FileName).Sheets("Fejllog").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
Range("A" & LastLine).PasteSpecial
Application.CutCopyMode = False
Workbooks(FileName).Sheets("Database").Activate
Range("E" & LinjeD).Value = FGM
Range("H" & LinjeD).Value = STA
Range("I" & LinjeD).Value = BMK
Range("O" & LinjeD).Value = Format(Now, "dd.mm.yyyy")
Range("P" & LinjeD).Value = VK
Range("Q" & LinjeD).Value = DP
Range("R" & LinjeD).Value = SNB
Workbooks(controlfile).Sheets("Lab").Activate
Else
Range("E" & LinjeD).Value = FGM
Range("H" & LinjeD).Value = STA
Range("I" & LinjeD).Value = BMK
Range("O" & LinjeD).Value = Format(Now, "dd.mm.yyyy")
Range("P" & LinjeD).Value = VK
Range("Q" & LinjeD).Value = DP
Range("R" & LinjeD).Value = SNB
Workbooks(controlfile).Sheets("Lab").Activate
End If
End If
Next Cell
任何输入将不胜感激,谢谢。
解决方案
我找到了解决方案。
在搜索开始之前,我错误地清除了用作搜索名称的单元格的内容。这导致搜索一个空单元格。
感谢大家的投入,并帮助我清理我的代码 :)
令人惊奇的是,您可以花费数小时查看某件事,却发现答案就在您面前。
推荐阅读
- css - 为什么锚相邻兄弟不能与其他元素标签一起使用?
- javascript - Tabulator - 使用 ajax 获取 JSON 文件
- sonarqube - karma sonarqube unit 记者输出以 HTML 格式输出
- python-3.x - Numpy:如何执行四个向量的外积然后求和?
- unity3d - 无法通过使用应用签名的开发人员构建来验证 Google Play 游戏服务
- php - 如何使用 curl 和 dom 从 url 解析 xml,并打印 xml 内容
- python - 如何通过极值点裁剪图像?OPENCV - 蟒蛇
- html - 当我将我的 li 列表向右浮动时,它是居中对齐的
- python - 在熊猫python中获取数据框的一列时出错
- hyperledger-fabric - configtxgen 失败:ERRO 003 找不到配置文件