1

Excel ファイルがあり、セルの値を読み取りたい、つまり、セルに含まれて(S:1 P:0 K:1 Q:1)いる値を読み取りたい。各値を読み取り、各値を別の列に保存したい。たとえば、S:1 の場合、別のセル 1 にする必要があります。セルからデータを読み取り、マクロと vba を使用して別のセルに書き込むにはどうすればよいですか?

助けてくれてありがとう

アップデート:

Sub MacroF1()
usedRowCount = Worksheets("Übersicht_2013").UsedRange.Rows.Count
For i = 1 To usedRowCount
cellAYvalue = Worksheets("Übersicht_2013").Cells(i, "AY").Value
If InStr(cellvalue, "S: 1") <> 0 Then
Worksheets("Übersicht_2013").Cells(i, "BC") = 1
Else
Worksheets("Übersicht_2013").Cells(i, "BC") = 0
End If

If InStr(cellvalue, "P: 1") <> 0 Then
Worksheets("Übersicht_2013").Cells(i, "BD") = 1
Else
Worksheets("Übersicht_2013").Cells(i, "BD") = 0
End If

If InStr(cellvalue, "M: 1") <> 0 Then
Worksheets("Übersicht_2013").Cells(i, "BE") = 1
Else
Worksheets("Übersicht_2013").Cells(i, "BE") = 0
End If

If InStr(cellvalue, "L: 1") <> 0 Then
Worksheets("Übersicht_2013").Cells(i, "BF") = 1
Else
Worksheets("Übersicht_2013").Cells(i, "BF") = 0
End If

If InStr(cellvalue, "K: 1") <> 0 Then
Worksheets("Übersicht_2013").Cells(i, "BG") = 1
Else
Worksheets("Übersicht_2013").Cells(i, "BG") = 0
End If

If InStr(cellvalue, "Q: 1") <> 0 Then
Worksheets("Übersicht_2013").Cells(i, "BH") = 1
Else
Worksheets("Übersicht_2013").Cells(i, "BH") = 0
End If
'Worksheets("Übersicht_2013").Cells(i, "BC") = dd
'Worksheets("Übersicht_2013").Cells(i, "AY").Value
'Worksheets("Übersicht_2013").Range("BD44") = "Babak"
Next i

End Sub
4

3 に答える 3

2

確かに、VBAを完全に回避して、ワークシートの数式でこれを行うことができます:

たとえば、列 AV S:1 P:0 K:1 Q:1 のこの値について

この数式を列 BC に入力します。

=MID(AV:AV,FIND("S",AV:AV)+2,1)

次に、列 BD、BE のこれらの式...

=MID(AV:AV,FIND("P",AV:AV)+2,1)
=MID(AV:AV,FIND("K",AV:AV)+2,1)
=MID(AV:AV,FIND("Q",AV:AV)+2,1)

したがって、これらの数式は、列 AV で値S:1P:1などを探します。関数がエラーを返した場合はFIND、数式によって 0 が返され、それ以外の場合は 1 (IF, THEN, ELSE

次に、列 AV のすべての行の数式をコピーします。

HTHフィリップ

于 2013-07-02T10:13:49.260 に答える
1

単一のセルに存在する個々のアルファベットまたは記号は、次のコードによって異なる列の異なるセルに挿入できます。

For i = 1 To Len(Cells(1, 1))
Cells(2, i) = Mid(Cells(1, 1), i, 1)
Next

コロンなどの記号を挿入したくない場合は、if 条件をループに入れます。

于 2013-07-02T11:55:13.170 に答える