我有一个包含N行和M列的Excel文件。通常,每行组织一次数据,但可能会发生数据占用多行的情况。在这种情况下,我如何表示第二行(或下一行)必须引用第一行?
在这个例子中,AP.01有5行描述,那么我怎么能说其他4行也引用第一个代码?
编辑一旦我完成了关联,我就必须将我的Excel文件导出到Access DB中。所以我希望看到包含正确数据的表格。 如果我只有一行描述,我编写了这段代码并且它可以工作:
If grid(r, 3).Text.Length > 255 Then
code.Description = grid(r, 3).Text.ToString.Substring(0, 252) + "..."
Else
code.Description = grid(r, 3).Text.ToString
End If
相反,如果我为描述创建了多行,那么我编写了这段代码并且它不起作用:
Do While grid(r, 1).ToString = ""
If grid(r, 1).ToString = "" And grid(r, 3).ToString IsNot Nothing Then
Dim s As String
s = grid(r, 3).ToString
code.Description = grid((r - 1), 3).ToString & s
End If
Loop
答案 0 :(得分:1)
如果是一次性,请尝试以下操作。这基本上会在每个引用其正上方单元格的单元格中放置一个公式:
ctrl
+ g
打开GoTo对话框Special
Blanks
醇>
以上将选择A栏中的所有空白单元格。现在输入=
并按up arrow
。按住Enter键的同时按住ctrl
输入公式。这将在每个单元格中输入相同的公式。
答案 1 :(得分:1)
尝试
Sub Demo()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet3") 'change Sheet3 to your data sheet
With .Range("A:A").SpecialCells(xlCellTypeBlanks)
.FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End Sub
答案 2 :(得分:0)
从你的问题我猜,你必须为最后一列Value定义一个变量。并检查相应列中的值,如果为空,则使用列值(如果不为空),然后将当前值作为最后一个值。
“Dim LastValue as string
LastValue = sheet("SheetName").cells(i,"Column Name").value
for i = 2 to LastRow '>>>> here i am assume you run code in for loop from row to
'to last count row(LastRow as variable)
'Put your sheet name at "SheetName" and column index (like "A","B","C"...) at "Column Name"
if sheet("SheetName").cells(i,"Column Name").value <>"" then
LastValue = sheet("SheetName").cells(i,"Column Name").value
end if
'(Do your stuff using LastValue , you may generate lastvalue 1, lastvalue2 ..etc)
next'for loop end here