Excel 在特定值之间填充单元格

Excel 在特定值之间填充单元格,excel,vba,Excel,Vba,这是我在这里的第一个问题,所以我希望这是好的。我有一个Excel 2007电子表格,其中有许多行设置如下: 000000111010011001100000000000000000 000000000000001111101101000000000000 000000000000000000000000001010000000 所有行的长度相同(192个单元格)。在每一行中,我需要用“1”填充第一个和最后一个“1”之间出现的所有零,以获得: 00000011111111111110

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

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

000000111111111111100000000000000000  
000000000000001111111111000000000000  
000000000000000000000000001110000000  

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

很简单,你需要一些关于VBA-excel的阅读资料。。努力使你的工作顺利进行。。这是代码。我假设您在一列中有数据

测试

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

欢迎使用堆栈溢出:)它有点简单。试试这个。循环行,检查
1
的第一个实例和最后一个实例,然后确定范围。完成后,简单地用
1
填充该范围内的所有值。试一试,如果你被卡住了,把你试过的代码贴出来,我们会从那里接受它。Siddharth说的似乎是最可行的。为了加快循环速度,请将范围转换为数组并继续。然后将处理后的数组转储回该范围。您是否可以显示工作表的打印屏幕?所以其他人可能会对你的要求有更好的了解。谢谢你,我对VBA完全陌生,在这里挣扎。我的数据并非全部在A列中,而是在一个范围内:(“A1:GC1272”)我需要如何更改上述代码以反映这一点?您希望进行哪些更改。。在同一范围内?