我有一个包含列名和行名的表。表是在某些交叉字段中带有“0”-零的字段;所有其他字段都是空的。我想要的是用 A 列(行名)中单元格中的内容替换所有“0”。
表每次可能有不同的大小。
我是 vba 的新手-所以我只需要为每个“0”找到并用同一行中的 vale 替换它,但是可以 A-如何?:-(
获取单元格:
Dim StartCell as Range
Set StartCell = Sheet1.Range("A1") //or any coordinate, but I assume you start in A1 (the column with line names and the line with column names)
循环遍历命名的行和列,直到它们为空:
Dim Line as Integer, Column as Integer
Dim LineName as Range, ColumnName as Range
Line = 1 'line index to loop
Column = 1 'column index to loop
Set LineName = StartCell.Offset(Line,0) 'the first line name cell
Set ColumnName = StartCell.Offset(0, Column) 'the first column name cell
Do While (LineName.Value <> "") ' while you have line names, not end of sheet
Do While (ColumName.Value <> "") ' while you have column names, not end of sheet
'Check if cell in current line and column has zero value
If StartCell.Offset(Line, Column).Value = 0 Then
'change its value for line name
StartCell.Offset(Line, Column).Value = LineName.Value
End If
Column = Column + 1 'go next column index
Set ColumnName = StartCell.Offset(0,Column) 'get next column name
Loop
Column = 1 'reset column for next line loop
Line = Line + 1 'go next line index
Set LineName = StartCell.Offset(Line,0) 'get next line name
Loop
非 VBA 答案:
您可以创建一个公式来进行此操作,然后将公式拖动或复制/粘贴到不同的区域或工作表中。
假设您的工作表从 A1 变为 D4。(作为第 1 行和第 1 列的名称)
拿一些像 G2 这样的单元格并把这个论坛:
= if (B2 = 0; $A2; "")
拖到J4
. 因此,您创建了一个具有所需名称的并行表。然后复制该新表并paste special - values only
代替原始表。