excel - 如何在另一个工作簿中查找最后一列
问题描述
早上好,朋友
我们如何才能找到最后的活动范围?所以故事:范围是动态的,例如:有时范围(“A2:J2”)有时范围(“A2:AB2”)如何修复此代码?
For Each rng In wbk.Sheets(3).Range("A2:J2") '<<< dynamic range "" ????
这是我的完整代码
Sub try()
Dim fDialog As fileDialog
Dim wbk, Mywbk As Workbook
Dim rng As Range
Dim a As Variant
Dim i, ii, c, r, x, y, z
Set Mywbk = ActiveWorkbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Set fDialog = Application.fileDialog(msoFileDialogFilePicker)
With fDialog
If .Show = True Then
Dim fPath As Variant
fPath = .SelectedItems.Item(1)
Set wbk = Workbooks.Open(Filename:=fPath)
Else
MsgBox "blank"
Exit Sub
End If
End With
Mywbk.Activate
a = Mywbk.Sheets("Sheet1").UsedRange
With CreateObject("scripting.dictionary")
For i = 1 To UBound(a, 2)
If Not .exists(a(2, i)) Then
x = ""
For ii = 4 To UBound(a)
x = x & a(ii, i) & Chr(2)
Next
.Add a(2, i), x
End If
Next
For Each rng In wbk.Sheets(3).Range("A2:J2") '<<< dynamic range
c = rng.Column: r = rng.Row
y = rng.Value
x = .Item(y)
x = Split(x, Chr(2))
wbk.Sheets(3).Cells(r, c).Offset(1, 0).Resize(UBound(x)) = Application.Transpose(x)
Next
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
解决方案
将此片段插入您的代码中(顶部的声明,而不是代码行之间的声明)。
Dim Rng As Range
Dim Cell As Range
With wbk.Worksheets(3)
Set Rng = .Range(.Cells(2, "A"), .Cells(2, .Columns.Count).End(xlToLeft))
End With
For Each Cell In Rng '<<< dynamic range
With Cell
c = .Column
r = .Row
y = .Value
End With
x = .Item(y)
x = Split(x, Chr(2))
wbk.Sheets(3).Cells(r, c).Offset(1, 0).Resize(UBound(x)) = Application.Transpose(x)
Next Cell
动态范围设置为从 A2 到第 2 行中最后使用的单元格。请注意,在最后使用的单元格之后可能有中间空白,但没有。
推荐阅读
- javascript - 只接受字母和空格的正则表达式
- python - 每隔 n 个值更新数据帧中的值,并使用 group by
- java - Springboot 与 Websphere MQ
- flutter - 选择下拉按钮时,TextField 焦点卡住
- python - 迭代一个二维数组,然后返回每个子列表的最大值
- c++ - 关于 FFTW3 guru 界面的困惑:3 个同时复杂的 FFT
- mysql - 如何将alter table应用于多个数据库?
- android - 无法从 getter setter 模式中 getJudul
- reactjs - 如何使用带有 Material UI Drawer 的 React Router 来更改点击内容?
- python - 运行示例 python 代码时内核死机