Excel - 单行字符串到多列字符
Excel - String in a single Row to Characters in Multiple Column
我是 Excel VB 的新手。目前,我想做以下事情 -
从单元格读取。像这样的“010111”(二进制)。假设它在 sheet 1,单元格 A10 中。
像这样将相同的信息写入多个单元格。让我们说 sheet 2. 单元格 B1 到 B6。像 , Sheet 2 - B1 -0
Sheet 2 - B2 -1
Sheet 2 - B3 -0
Sheet 2 - B4 -1
Sheet 2 - B5 -1
Sheet 2 - B6 -1
另外,我想让它通用,我的意思是我想有一个 for 循环或类似的东西可以为动态单元格做这个。即,从 sheet 1 - A(i) 到 sheet 2 - B(j) 到 B(j+n)。
请帮帮我好吗?这是否可以从字符串中读取单个字符。我假设我们可以将二进制文件作为字符串并读取每个字符,然后可以将它们一个一个地放入列行中,使其对于任何 row/column.
都是动态的
谢谢,
普拉泰克
下面是如何执行此操作的粗略示意图:
Sub test()
Dim lastRow As Integer, i As Integer, targetCol As Integer, targetRow As Integer
Dim char As String
Dim rng As Range, cel As Range
targetCol = 2 ' Set the target column to col. "B"
targetRow = 1 ' Set the target Row, starts at row 1 (B1)
lastRow = Cells(1, 1).End(xlDown).Row 'assuming your data in column A is a bunch of strings you want to break out, without
' any gaps, this will find the last row
Set rng = Range(Cells(1, 1), Cells(lastRow, 1))
For Each cel In rng
If Len(cel) > 0 Then
For i = 1 To Len(cel)
Cells(targetRow + i - 1, targetCol).Value = Mid(cel.Value, i, 1)
Next i
targetRow = targetRow + Len(cel)
End If
Next cel
End Sub
它采用我的 A1:A4 范围,并粘贴到 B 列,从第 1 行开始:
我找到了一个答案,我自己更容易理解。无论如何感谢您的所有建议。由于忙于开发该工具,我无法 post 回复。这是给你们的一小段代码。
'Our first Job is to define the range.
'这里我选择D10到K10。您可以在调试“行数和列数”时进行检查。
Dim rng 作为范围,cel 作为范围
设置 rng = 范围("D10", "K10")
'定义计数器变量
将 i 调暗为整数,将 j 调暗为整数
对于rng中的每个cel
If Len(cel) > 0 Then
For i = 1 To Len(cel)
'从字符串Cel中提取单个字符
'MID(Input_string,Start_position,Number_of_characters)
char = Mid(cel.Value, i, 1)
'决定你想用这些值做什么
If char = 0 Then
'Select sheet & 您要打印的单元格位置
Sheet4.Cells(9 + j, 1).Value = char + " Hey Prateek,Its a Zero"
ElseIf char = 1 Then
'Select sheet & 您要打印的单元格位置
char = 180
Sheet4.Cells(9 + j, 1).Value = char + " Hey Prateek, Its a One"
End If
'执行此操作如果你也想在另一个位置写这个
'oFile.WriteLine Sheet4.Cells(9 + j, 1).Value
'循环字符然后增加目标中的行数
j = j + 1
'循环下一个单元格
Next i
End If
下一张图
您也可以在
阅读相同内容
From Cell to multiple cells in Column
问候 ,
帕特里克·杜
祝您Excel愉快。
我是 Excel VB 的新手。目前,我想做以下事情 -
从单元格读取。像这样的“010111”(二进制)。假设它在 sheet 1,单元格 A10 中。 像这样将相同的信息写入多个单元格。让我们说 sheet 2. 单元格 B1 到 B6。像 , Sheet 2 - B1 -0 Sheet 2 - B2 -1 Sheet 2 - B3 -0 Sheet 2 - B4 -1 Sheet 2 - B5 -1 Sheet 2 - B6 -1 另外,我想让它通用,我的意思是我想有一个 for 循环或类似的东西可以为动态单元格做这个。即,从 sheet 1 - A(i) 到 sheet 2 - B(j) 到 B(j+n)。
请帮帮我好吗?这是否可以从字符串中读取单个字符。我假设我们可以将二进制文件作为字符串并读取每个字符,然后可以将它们一个一个地放入列行中,使其对于任何 row/column.
都是动态的谢谢, 普拉泰克
下面是如何执行此操作的粗略示意图:
Sub test()
Dim lastRow As Integer, i As Integer, targetCol As Integer, targetRow As Integer
Dim char As String
Dim rng As Range, cel As Range
targetCol = 2 ' Set the target column to col. "B"
targetRow = 1 ' Set the target Row, starts at row 1 (B1)
lastRow = Cells(1, 1).End(xlDown).Row 'assuming your data in column A is a bunch of strings you want to break out, without
' any gaps, this will find the last row
Set rng = Range(Cells(1, 1), Cells(lastRow, 1))
For Each cel In rng
If Len(cel) > 0 Then
For i = 1 To Len(cel)
Cells(targetRow + i - 1, targetCol).Value = Mid(cel.Value, i, 1)
Next i
targetRow = targetRow + Len(cel)
End If
Next cel
End Sub
它采用我的 A1:A4 范围,并粘贴到 B 列,从第 1 行开始:
我找到了一个答案,我自己更容易理解。无论如何感谢您的所有建议。由于忙于开发该工具,我无法 post 回复。这是给你们的一小段代码。
'Our first Job is to define the range.
'这里我选择D10到K10。您可以在调试“行数和列数”时进行检查。
Dim rng 作为范围,cel 作为范围
设置 rng = 范围("D10", "K10")
'定义计数器变量
将 i 调暗为整数,将 j 调暗为整数
对于rng中的每个cel
If Len(cel) > 0 Then
For i = 1 To Len(cel)
'从字符串Cel中提取单个字符
'MID(Input_string,Start_position,Number_of_characters)
char = Mid(cel.Value, i, 1)
'决定你想用这些值做什么
If char = 0 Then
'Select sheet & 您要打印的单元格位置
Sheet4.Cells(9 + j, 1).Value = char + " Hey Prateek,Its a Zero"
ElseIf char = 1 Then
'Select sheet & 您要打印的单元格位置
char = 180
Sheet4.Cells(9 + j, 1).Value = char + " Hey Prateek, Its a One"
End If
'执行此操作如果你也想在另一个位置写这个
'oFile.WriteLine Sheet4.Cells(9 + j, 1).Value
'循环字符然后增加目标中的行数
j = j + 1
'循环下一个单元格
Next i
End If
下一张图
您也可以在
阅读相同内容From Cell to multiple cells in Column 问候 , 帕特里克·杜
祝您Excel愉快。