我有一个包含列名和行名的表。表是在某些交叉文件中具有“0” - 零的字段;所有其他的filds都是空的。 我想要的是将所有“0”替换为A列(行名称)中的单元格。
表每次都可以有不同的大小。
我是vba的新手 - 所以我唯一的意思是我需要为每个“0”找到并用同一行中的vale替换它,但是库存A - 如何?: - (
答案 0 :(得分:0)
获取细胞:
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
答案 1 :(得分:0)
非VBA答案:
您可以创建一个公式来进行此操作,并将公式拖放或复制/粘贴到不同的区域或表格中。
假设您的工作表从A1到D4。 (第1行和第1列有名称)
拿一些像G2这样的细胞并把这个论坛:
= if (B2 = 0; $A2; "")
将其拖至J4
。因此,您创建了一个具有所需名称的并行表。
然后复制该新表并paste special - values only
代替原始表。