在特定值之间填充单元格

这是我在这里的第一个问题,所以我希望这是好的。 我有一个Excel 2007电子表格,其中许多行的设置是这样的:

000000111010011001100000000000000000 000000000000001111101101000000000000 000000000000000000000000001010000000 

所有的行都有相同的长度(192个单元格)。 在每一行中,我需要用“1”填充第一个和最后一个“1”之间出现的所有零,以得到:

 000000111111111111100000000000000000 000000000000001111111111000000000000 000000000000000000000000001110000000 

我试过在这里search,但找不到类似的问题。 希望这可以通过VBA(我是新来的)。

它的简单,你需要一些关于VBA的读取 – Excel的。试着这样你的工作..这里是code.I假设你有在A列的数据。

经testing

 Dim lrow As Integer Dim erange As Range Dim reslut As String Dim i As Integer Dim j As Integer Dim str As String Sub TESTING() With ActiveSheet lrow = .Range("A" & Rows.Count).End(xlUp).Row For Each erange In .Range("A1:A" & lrow) result = returnvalue1(erange.Text, StrReverse(erange.Value)) erange.Offset(0, 1).Value = Replace(result, "0", "1") Next erange End With End Sub Function returnvalue1(ByVal val1 As String, ByVal val2 As String) As String i = InStr(val1, 1) Debug.Print i j = InStr(val2, 1) - 1 Debug.Print j j = Len(val1) - j Debug.Print j str = Mid(val1, i, (j - i) + 1) returnvalue1 = str End Function