在特定值之间填充单元格

时间:2014-02-20 08:38:55

标签: excel excel-vba vba

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

000000111010011001100000000000000000  
000000000000001111101101000000000000  
000000000000000000000000001010000000  

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

000000111111111111100000000000000000  
000000000000001111111111000000000000  
000000000000000000000000001110000000  

我试过在这里搜索,但找不到类似的问题。希望通过VBA(我是新手)可以做到这一点。

1 个答案:

答案 0 :(得分:0)

它很简单你需要一些关于vba的阅读 - excel ..尝试这样你的工作..这是代码。我假设你有A列中的数据。

<强>测试

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