有一个三列约 9,400 行的表,列出了代码的字母数字范围的开始值和结束值以及分配给该范围的第三个值。需要将两列范围端点更改为一列显式列出的 (1:1) 值。您能想出一种方法来自动显式列出范围内的值吗?
当前示例行:
|---r1----|---r2----|ccs|
| 0106T | 0110T | 7 |
期望的输出:
|--代码-|ccs|
| 0106T | 7 |
| 0107T| 7 |
| 0108T | 7 |
| 0109T| 7 |
| 0110T | 7 |
它存储在 MySQL 数据库和 Excel 工作簿中,但任何语言或操作方式都可以。
最佳答案
如果它仅带有“T”,则这将起作用并且是完整宏的良好基础:
Sub Alpha()
Dim WsS As Worksheet
Set WsS = Worksheets("Source")
Dim WsR As Worksheet
Set WsR = DeleteAndAddSheet("Results")
For i = 2 To WsS.Range("A" & Rows.Count).End(xlUp).Row
For k = Val(WsS.Cells(i, 1)) To Val(WsS.Cells(i, 2))
WsR.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = k & "T " & WsS.Cells(i, 3)
Next k
Next i
End Sub
表格的有用功能:
Public Function DeleteAndAddSheet(ByVal SheetName As String) As Worksheet
For Each aShe In Sheets
If aShe.Name <> SheetName Then
Else
Application.DisplayAlerts = False
aShe.Delete
Application.DisplayAlerts = True
Exit For
End If
Next aShe
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = SheetName
Set DeleteAndAddSheet = ThisWorkbook.Worksheets(Worksheets.Count)
End Function
关于mysql - 填充给定起点和终点的字母数字值范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29435305/