首页 > 解决方案 > 用于搜索、查找、复制、粘贴单词和合并单元格的宏

问题描述

我正在尝试制作一个可以:

  1. 在E列的所有行中搜索单词“是”,将其复制并粘贴到B列的对应行(同一行)
  2. 将 B 列中的单元格与 C 列中的单元格合并

例如:宏在E列中搜索“是”这个词,在E5中找到“是”这个词,将“是”复制粘贴到B5,合并B5和C5并确认合并(excel总是显示一个pop un窗口要求手动单击按钮以确认合并),继续下一个搜索。

标签: excelvba

解决方案


请尝试下一个代码。合并单元格时它不会询问任何内容,并且该区域将采用左侧单元格值(B = Yes)。如果您需要 C 中的值,或两个单元格之间的连接,您必须告诉我们:

Sub testMergeYesWord()
 Dim sh As Worksheet, lastR As Long, i As Long
 
 Set sh = ActiveSheet 'use here the sheet you need
 lastR = sh.Range("E" & rows.count).End(xlUp).row
    
 For i = 2 To lastR
    If UCase(sh.Range("E" & i).Value) = "YES" Then
        sh.Range("B" & i).Value = sh.Range("E" & i).Value
        Application.DisplayAlerts = False 'to avoid the message asking what value to be allocate to the merged area
         sh.Range("B" & i & ":C" & i).merge
        Application.DisplayAlerts = True
    End If
 Next i
 MsgBox "Ready..."
End Sub

推荐阅读