我正在使用VBA
代码写入excel中的单元格。例如。
Range("C3") = code
或
Cells(3,3) = code
如果在工作表中插入了一行,则代码不会相应地更新,并且仍会写入Range("C3")
等。因此,代码随后将写入错误的单元格。
有没有更好的方法来组织代码,以便代码会相应地更新?也许使用表格代替单元格?
答案 0 :(得分:1)
一种解决方案是使用Named Ranges。您可以通过单击“名称管理器”在“公式”选项卡中定义“命名范围”。
然后您要写。
Range("Name of the Range") = code
我相信,当插入行或列时,命名范围会自动更新,因此您的代码将在正确的单元格中打印该值。
答案 1 :(得分:0)
谢谢,好主意。我最终定义了填充有值的列作为范围,然后使用for循环搜索定义的字符串。这样,只要名称和字符串没有变化,它位于哪一行都没有关系(出于确切的原因,使用命名范围可能会更好。)
Worksheets("Sheet1").Select
Set WS = ActiveSheet
With WS
LastRow = .Cells(.Rows.Count, 2).End(xlUp).Row 'Determine the last row number with data in it for column B
For Each acell In .Range("B1:B" & LastRow) 'Defines the search range from B1 to last row
If acell.Value = "String Searched For" Then
'Do stuff based on found cell location
End If
If acell.Value = "String Searched For#2" Then
'Do stuff based on found cell location#2
End If
Next
End With