私はこれに一日狂ったように運転していて、高低を検索しました、そしておそらく可愛すぎようとしているので完全に立ち往生しています。
それなら私は単純なものを実行しようとしています
セルに「%」が含まれている場合は、あることを実行し、そうでない場合は別のことを実行します。理由がわからないので、うまくいきません。私は明らかに他の場所からいくつかのアイデアを取り入れましたが、それでもそれを機能させることはできません。
複雑な要因-これを列全体ではなく、テーブルだけで実行したくないので、ロットまたは相対ActiveCellを使用してより大きなサブに埋め込まれます。A列のどこで「%Change」が発生するかわからないため、範囲は常に可変である必要があります。「%」が含まれているセルに到達したときに、VBA/VBEに別の処理を実行させたい。それで
生データは次のようになります
Initial Value (6/30/06)
Value (12/31/06)
Net Additions (9/30/07)
Withdrawal (12/07)
Value (12/31/07)
Withdrawal (2008)
Value (12/31/08)
Addition (8/26/09)
Value (12/31/09)
Value (12/31/10)
Value (12/30/11)
Value (3/31/12)
% Change 1st Quarter
% Change Since Inception
しかし、以下を実行すると、サブの「Else」部分ではなく「IfThen」に引き出されるはずの悪いループでスタックします。
Sub IfTest()
'This should split the information in a table up into cells
Dim Splitter() As String
Dim LenValue As Integer 'Gives the number of characters in date string
Dim LeftValue As Integer 'One less than the LenValue to drop the ")"
Dim rng As Range, cell As Range
Set rng = ActiveCell
Do While ActiveCell.Value <> Empty
If InStr(rng, "%") = True Then
ActiveCell.Offset(0, 0).Select
Splitter = Split(ActiveCell.Value, "% Change")
ActiveCell.Offset(0, 10).Select
ActiveCell.Value = Splitter(1)
ActiveCell.Offset(0, -1).Select
ActiveCell.Value = "% Change"
ActiveCell.Offset(1, -9).Select
Else
ActiveCell.Offset(0, 0).Select
Splitter = Split(ActiveCell.Value, "(")
ActiveCell.Offset(0, 9).Select
ActiveCell.Value = Splitter(0)
ActiveCell.Offset(0, 1).Select
LenValue = Len(Splitter(1))
LeftValue = LenValue - 1
ActiveCell.Value = Left(Splitter(1), LeftValue)
ActiveCell.Offset(1, -10).Select
End If
Loop
End Sub
すべての助けに感謝します、ありがとう!