select第N行,Excel。 replace为无或原始单元格内容

我有一个Excel工作表,其中我的variables列在列E和他们的价值列在列G

我想testing如果E包含单词"text" (我的variables)。 如果是这样的话,我想用"This is my successful if statement text"replaceG列中相应的单元格。

如果不是,我希望单元格可以独立(不可能在Excel中),或者保留它原来的值(我认为问题是它的文本不是数字)。

到目前为止,我尝试过

 =if(e2="text", "Replace with this", G2) 

以及

 =if(e2="text", "replace with this", "") 

顶部返回一个数字,而底部返回一个空单元格,删除我在那里的内容。

有什么build议么? 我认为这可以用VB来完成,但这是我的联赛。

解决这个问题的正确方法就是这样。

在列H(或任何不包含任何信息)放置公式

 =IF(E2 = "text", "This is the true part", G2) and drag down. 

这将testingE2的单词“text”,然后replace为“this is true ..”。如果条件不符合,来自G2的原始文本被拉入到新的列中。

一旦完成,所需的结果应该已经生效。 然后,您可以复制该行并使用“select性粘贴”,然后从popup式菜单中select“值”以粘贴新数据。 select值允许用户粘贴实际的字段数据,而不是生成它的公式!

尝试这个。

 Sub g() Dim ws As Worksheet Dim lastRow As Long Set ws = ThisWorkbook.Worksheets("Sheet1") 'change sheet name as applicable lastRow = ws.Cells(ws.Rows.Count, "E").End(xlUp).Row For i = 1 To lastRow With ws If .Cells(i, 5) = "text" Then .Cells(i, 7) = "The text you want" End If End With Next End Sub 

看起来你正在试图从E列中得到四个你想要parsing(分割)的值并放在G列中。

通过在单元格G2,G3中创build四个parsing{=中(e2,16,10),=中(e3,9,15),=中(e4,5,3),=中(e5,10,22)}} ,G4和G5,您可以select四个G单元的块(G2:G5),select右下方的块,然后将其拖放到整个文件中。

或者,您可以使用模math和case语句遍历文件并在每个点执行所需的function:

 myCount = 0 myLoop = 0 endMyLoop = false range("G2").activate do myLoop = myCount mod 4 select case myLoop case 0 code for description_tag case 1 code for title_tag case 2 code for headline case 3 code for text end select if activecell.value = "" then endMyLoop = true loop until (endMyLoop = true) 

你说E中的每一行都是文本。 所以,它应该只是复制公式每四行或执行你的函数每G次列(modulo返回余数)模式。

另一个select是嵌套你的if循环(= if(e2 =“text”,“Its text”,if(e2 =“title_tag”,“它是一个标题”,if(e2 =“headline”,“ “,”其描述“))))来说明四个不同的选项。 当然,你会用你实际想要执行的function来填充文本。