Excel VBA程序开发

武松打鼓 Lv.4

关注
想将分表的身份证信息与汇总表原有的身份证信息比对后,放到h-m列:与汇总表身份证相同的就放到同行的h-m列,如果分表的身份证汇总表不存在,就放到h列的最下面行。


提取.zip   2025-11-5 15:45 上传

73.44 KB, 下载次数: 16


347阅读
13回复 倒序

ykcbf1100 Lv.7 2楼

放到h列的最下面行,这是哪一行?汇总表最大行的下方还是哪里?

lkqsmxw Lv.3 3楼

KKKKKKKKKKKKKKKKKKKK
2025-11-05_155617.jpg
2025-11-05_155652.jpg
2025-11-05_155728.jpg

lkqsmxw Lv.3 4楼

KKKKKKKKKKKKKKKK

提取.rar   2025-11-5 16:05 上传

177.71 KB, 下载次数: 4

ykcbf1100 Lv.7 5楼

没有回复我就猜一个吧。

附件供参考。。。

提取.zip   2025-11-5 16:21 上传

58.69 KB, 下载次数: 13

ykcbf1100 Lv.7 6楼

  1. Sub ykcbf()   '//2025.11.5
  2.     Application.ScreenUpdating = False
  3.     Set d = CreateObject("Scripting.Dictionary")
  4.     p = ThisWorkbook.Path & Application.PathSeparator
  5.     f = p & "分表1.xlsx"
  6.     Set wb = Workbooks.Open(f, 0, True, , False)
  7.     r = wb.Sheets(1).Cells(wb.Sheets(1).Rows.Count, 1).End(xlUp).Row
  8.     arr = wb.Sheets(1).[a1].Resize(r, 6).Value
  9.     wb.Close False
  10.     For i = 4 To UBound(arr)
  11.         s = arr(i, 4) & ""
  12.         d(s) = i
  13.     Next
  14.     r = Cells(Rows.Count, 1).End(xlUp).Row
  15.     brr = [a1].Resize(r, 13).Value
  16.     On Error Resume Next
  17.     For i = 3 To UBound(brr)
  18.         s = brr(i, 4) & ""
  19.         If d.exists(s) Then
  20.             For j = 1 To UBound(arr, 2)
  21.                 brr(i, j + 7) = arr(d(s), j)
  22.             Next
  23.             d.Remove s
  24.         End If
  25.     Next
  26.     [a1].Resize(r, 13).Value = brr
  27.     [a1].Resize(r, 13).Value.Borders.LineStyle = 1
  28.     If d.Count > 0 Then
  29.         ReDim crr(1 To d.Count, 1 To 6)
  30.         For Each k In d.keys
  31.             m = m + 1
  32.             For j = 1 To UBound(arr, 2)
  33.                 crr(m, j) = arr(d(k), j)
  34.             Next
  35.         Next
  36.         Cells(r + 1, 8).Resize(m, 6) = crr
  37.     End If
  38.     Application.ScreenUpdating = False
  39.     MsgBox "OK!"
  40. End Sub


武松打鼓 楼主 7楼

引用: lkqsmxw 发表于 2025-11-5 16:05
KKKKKKKKKKKKKKKK

虽然会强大,但不符合我的要求。我只需要把分表的数据提取进来就行

武松打鼓 楼主 8楼

引用: ykcbf1100 发表于 2025-11-5 16:01
放到h列的最下面行,这是哪一行?汇总表最大行的下方还是哪里?

汇总表本身没有的信息,放到汇总表d列的最后行+1的行里,放置位置是在d列最后行的h-m处

武松打鼓 楼主 9楼

引用: ykcbf1100 发表于 2025-11-5 16:21
没有回复我就猜一个吧。

附件供参考。。。

放置的很准确,谢谢

liulang0808 Lv.18 10楼

image.png
加载更多