2017-09-08 30 views
-2

Folliwing eduroc.92さんの質問です。セルの値に基づいて行を動的に追加するにはどうすればよいですか?私たちは、今のところ、コードのこの部分を持っている:セル値に基づいてExcelで行を追加するにはどうすればよいですか?

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim i As Long 
    Dim StartingRow As Long 
    Dim StartingArrangement As Long 

    If Not Intersect(Target, Me.Cells(1, 2)) Is Nothing Then 
     With Me 
      StartingRow = .Cells(.Rows.Count, 1).End(xlUp).Row 

      If StartingRow < 3 Then 
       StartingRow = 2 
      Else 
       StartingArrangement = CLng(Trim(Replace(Replace(.Cells(StartingRow, 1), "Arrangement ", vbNullString), ":", vbNullString))) 
      End If 

      For i = 1 To .Cells(1, 2).Value2 
       .Cells(StartingRow, 1).Offset(i, 0).Value2 = "Arrangement " & StartingArrangement + i & ":" 
      Next i 
     End With 
    End If 
End Sub 

我々はジャークであることを気の毒質問のカップル、持っている:

をスプレッドシート内の既存のデータを上書きしないようにする方法がある?私たちは希望します行がはい、追加されることはなく、既存のデータが下方に移動すること:

この例では、ユーザーが

... 5(5)の構成は、それは確かに、スプレッドシート上の既存のデータを上書きします追加したい場合

Excel example #1

ユーザーが新しい数を入力するたびに行が加算されるのを防ぐことはできますか?この例では

、ユーザーは5つの手配、行が正常に作成された...

Excel example #2

が追加されます。しかし、ユーザーが3つの取り決めを追加した場合、その後、同じスプレッドシートで、それはしていません以下のデータがあればそれを上書きします。

わかりやすいことがあれば、私たちにも助けてくれてありがとうと思います。 。

ありがとうございます!新しい行を追加し、既存のデータを上書きしないようにするに

+3

タイトルとコードは説得力のある質問ではありません。実際の問題は何ですか?あなたのコードはエラーを生成するのですか? –

+1

あなたのコードに行を追加しようとした箇所はありません。 –

+0

申し訳ありませんが、間違った方法でアップロードしました。ただ更新しました。 –

答えて

0

あなたはこのようなもので、行を挿入することができます。

Rows("2:2").Select 
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 

あなただけ動的に行番号を設定する必要があります。

例#2に関連する問題を理解できませんでした。

0
Option Explicit 
Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim i As Long 
    Dim StartingRow As Long 
    Dim StartingArrangement As Long 

    If Not Intersect(Target, Me.Cells(1, 2)) Is Nothing Then 
     With Me 
      StartingRow = .Cells(.Rows.Count, 1).End(xlUp).Row 

      If StartingRow < 3 Then 
       StartingRow = 2 
      Else 
       StartingArrangement = CLng(Trim(Replace(Replace(.Cells(StartingRow, 1), "Arrangement ", vbNullString), ":", vbNullString))) 
      End If 

      For i = 1 To .Cells(1, 2).Value2 
       '**** insert a line and move down all the others ***** 
       .Cells(StartingRow, 1).Offset(i, 0).Insert Shift:=xlDown 

       .Cells(StartingRow, 1).Offset(i, 0).Value2 = "Arrangement " & StartingArrangement + i & ":" 
      Next i 
     End With 
    End If 
End Sub 

上記の行は、配置行を書き込む前に行を挿入し、すべて下に移動します。それがあなたの後であるかどうかは分かりません。たぶんあなたのコードをコメントして、各行が何をすべきか知っているでしょうか?

関連する問題