我有一个文件,我只想在整个文件中以一种模式提取单元格B9,B19,B29等等。我最好将它提取到一个不同的excel文件或某种方式,以便我可以只使用另一个excel工作表中的那些单元格。
潜在地,我可能有几个excel文件,我可能需要这样做,所以如果有一种方法,我在很多文件中有相同的格式,我总是可以提取单元格B9,B19,B29会很好。任何帮助赞赏
我尽可能寻找语法
修改
正在考虑我是否可以以某种方式制作一个excel IF声明,如果Row中有一个9并且该行是B然后将其打印到某个地方,但我希望它打印在一列中
编辑2 我只想要B列而不是我之前提到的A。 B9,B19,B29,B39通过整个文件
答案 0 :(得分:1)
以防万一你想用代码来做:
Sub Test()
'Assumes Sheet1 has your values and Sheet2 will be the data extracted from every row ending in 9
Dim iCounter As Long
Dim newSheetRow As Long
Dim aValue As String
Dim bValue As String
newSheetRow = 1
'Start and nine and increment by 10 till you reach end of sheet
For iCounter = 9 To Sheet1.Rows.Count - 1 Step 10 'NOTE: You may not want to do it by RowCount, but just showing you could
aValue = Sheet1.Range("A" & iCounter)
bValue = Sheet1.Range("B" & iCounter)
Sheet2.Range("A" & newSheetRow).Value = "We were on row: " & iCounter
Sheet2.Range("B" & newSheetRow).Value = aValue
Sheet2.Range("C" & newSheetRow).Value = bValue
newSheetRow = newSheetRow + 1
Next iCounter
MsgBox "Done"
End Sub
答案 1 :(得分:0)
取决于你想要做的频率取决于你需要怎么做,如果它是其中一个简单的excel命令可能有帮助。
e.g。
在Cell C1中提出以下内容:
=MOD(ROW(),10)
然后将其复制到数据的底部。该命令将返回数字1到0.然后,您可以过滤C列中数值为9的数据,然后选择可见行并将数据复制到新工作表。
ROW() ' this returns the ROW number of cell the command is in.
MOD(number, divisor) ' this basically divides one number by the other and returns the remainder. so row 9 / 10 = 0 remainder of 9, row 19 / 10 = 1 remainder of 9.
希望这有帮助。
答案 2 :(得分:0)
您可以使用INDIRECT功能。它将单元格引用作为文本字符串,并返回该单元格中的值。所以不要使用
=data!a9
要获取单元格a9中工作表“data”中的值,请使用
=indirect("data!a9")
您还可以使用r1c1表示法,如下所示:
=indirect("data!r9c1",false)
从那里你可以使用ROW和COLUMN函数来执行10:
=INDIRECT("data!r"&-1+10*ROW()&"c"&COLUMN(),FALSE)
如果你将这个公式放在输出表的A1中,然后将其复制并粘贴到其中,它将为您提供数据中的值!A9,数据!A19,数据!A29,......在单元格A1中, A2,A3 ...根据您的输出排列方式,您可能需要修改单元格引用字符串。