我有一个序列的每一行,我想copy and paste
每个序列的最后一个数字旁边的那个单元格。这个序列包含两个点,我想复制和粘贴所有出现在第一个点之后的东西。
请检查以下示例:
Sequence: "12345678.11.11"
Result should be: "11.11"
在另一个牢房里。
对此有什么想法吗?无论是VBA
编码还是普通excel工作表编码都可以。我会在稍后插入到VBA
中。
谢谢你的帮助。你好,蒂博尔
发布于 2016-12-01 12:30:42
尝试以下(注释)代码
Option Explicit
Sub main()
Dim cell As Range
With Worksheets("MySheet") '<--| change "MySheet" to your actual sheet name
For Each cell In .Range("A1:A10").SpecialCells(xlCellTypeConstants) '<--| change "A1:A10" to your actual range with dotted numbers
cell.Offset(, 1) = "'" & Split(cell, ".")(1) & "." & Split(cell, ".")(2)'<--| write last to dotted numbers in cell adjacent to current one
Next cell
End With
End Sub
发布于 2016-12-01 12:31:41
如果它总是第一个句号,那么您可以在电子表格中使用以下函数,而不是VBA (单元格A1上的示例):
=RIGHT(A1, (LEN(A1) - FIND(".", A1)))
发布于 2016-12-01 13:16:09
我不建议使用VBA,因为工作表函数很适合这类事情:
=MID(A1,FIND(".",A1)+1,100))
=REPLACE(A1,1,FIND(".",A1),"")
..。只是两个还没有给出的例子
如果您想让VBA尝试一下,请将此函数添加到VBA编辑器中的一个模块中:
Function GetRight(rng As Range)
GetRight = Right(rng.value, Len(rng.value) - InStr(rng.value, "."))
End Function
..。然后简单地在工作表上使用如下函数
=GetRight(A1)
您可以像普通函数一样来回拖动它。
编辑
下面是完整的代码,如果您希望VBA找到A列中的所有值,并将所需的输出返回给B列
Sub GetAllRight()
Dim rng As Range, r As Range
With ThisWorkbook.Worksheets("Sheet1")
Set rng = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp))
End With
For Each r In rng
r.Offset(0, 1).Value = GetRight(r)
Next r
End Sub
Function GetRight(rng As Range) As String
GetRight = Right(rng.Value, Len(rng.Value) - InStr(rng.Value, "."))
End Function
https://stackoverflow.com/questions/40910639
复制相似问题