ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 将分表中加粗字体的内容与主表匹配的内容插入到主表

将分表中加粗字体的内容与主表匹配的内容插入到主表

作者:绿色风 分类: 时间:2022-08-17 浏览:156
楼主
水星钓鱼
如图所示:
 

将分表中第一列加粗的字体内容与主表(STOCK)对比,假如匹配成功,则将加粗字体下的内容插入到主表对应的匹配项下。

代码如下:
  1. Sub xyf()
  2.     Application.ScreenUpdating = False
  3.     On Error Resume Next
  4.     Dim arr1(1 To 1000)
  5.     Dim arr2(1 To 1000)
  6.     Dim j, k
  7.     Dim wks As Worksheet
  8.     For Each wks In ThisWorkbook.Worksheets
  9.         If wks.Name <> "stock" Then
  10.             If MsgBox(prompt:="现在开始匹配" & wks.Name & "的数据", Buttons:=vbOKCancel) = 1 Then
  11.                 With wks
  12.                     .Range("a:e").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5), Header:=xlNo
  13.                     j = 0
  14.                     Erase arr1, arr2
  15.                     For i = 1 To .Cells(65536, 1).End(xlUp).Row
  16.                         If .Cells(i, 1).Font.Bold = True Then
  17.                             arr1(j + 1) = .Cells(i, 1).Row
  18.                             arr2(j + 1) = .Cells(i, 1)
  19.                             j = j + 1
  20.                         End If
  21.                     Next
  22.                 End With
  23.                 With Worksheets("stock")
  24.                 For i = 1 To j - 1
  25.                    k = Application.WorksheetFunction.Match(arr2(i), .Range("a:a"), 0)
  26.                    If Err.Number = 0 Then
  27.                     .Range("a" & k + 1).Resize(arr1(i + 1) - arr1(i) - 1).EntireRow.Insert (xlShiftDown)
  28.                     wks.Range("a" & arr1(i) + 1).Resize(arr1(i + 1) - arr1(i) - 1).Copy .Range("a" & k + 1)
  29.                     End If
  30.                     Err.Clear
  31.                 Next
  32.                 End With
  33.                
  34.             End If
  35.         End If
  36.     Next
  37.     Set obj = Worksheets("stock").Range("a1:F" & Worksheets("stock").Cells(65536, 6).End(xlUp).Row)
  38.     With obj
  39.         .SpecialCells(xlCellTypeBlanks).EntireRow.Interior.Color = 65535
  40.         .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
  41.         .Copy
  42.         .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
  43.         Application.CutCopyMode = False
  44.         .RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6), Header:=xlYes
  45.     End With
  46.     Application.ScreenUpdating = True
  47. End Sub
附件如下:

VBA.rar


2楼
随缘11
好难啊
3楼
老糊涂
下载学习

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap