-1

私は非常に大きな問題を抱えており、それに対する答えが見つかりません。多分あなたは私を半分にすることができます。

  1. シート「イントロ」には行(5)があり、その中に式があります:(i)C5(='Sheet1'!$A$1); (ii) I5(=OFFSET('Sheet1'!$A$1;17;1;1;)); (iii) この行には、私のテーブルの行の数もあります。e B5(=1). この番号「1」は Sheet1 へのハイパーリンクでもあります。ここにコードを入力してください

  2. 私はマクロを持っています。これは、最後に入力された行の後に新しい行を自動的に挿入します。つまり、5 行を入力してマクロを実行すると、6 行目が挿入されます。

より具体的には、新しい行は次のように入力する必要があります: 新しい行が 6 の場合: (i) C6(='Sheet2'!$A$1); (ii) I6(=OFFSET('Sheet2'!$A$1;17;1;1;)); (iii) B6(=2). この番号「2」は Sheet2 へのハイパーリンクでもあります。新しい行が 7 の場合: (i) C7(='Sheet3'!$A$1); (ii) I7(=OFFSET('Sheet3'!$A$1;17;1;1;)); (iii) B7(=3). この数字「3」は Sheet3 へのハイパーリンクでもあります。新しい行が 8 の場合: (i) C8(='Sheet4'!$A$1); (ii) I8(=OFFSET('Sheet4'!$A$1;17;1;1;)); (iii) B8(=4). この数字「4」は Sheet4 へのハイパーリンクでもあります。

と......

多分あなたは私を助けることができますか?

よろしくお願いします。

4

1 に答える 1

0

既にマクロが配置されているので、これを処理するためにいくつかの追加機能を使用してマクロを拡張します。

VBA を使用すると、セルの数式を簡単に設定できます。

Sub createRow()
    Dim i As Integer
    i = 5
    Dim sheetOffset As Integer
    sheetOffset = -4

    FillInRow i, sheetOffset
End Sub

Sub FillInRow(i As Integer, sheetOffset As Integer)
    Sheets("Intro").Range("C" & i).Formula = "=Sheet" & CStr(i + sheetOffset) & "A1"
    Sheets("Intro").Range("I" & i).Formula = "=OFFSET(Sheet " & CStr(i + sheetOffset) & "3!$A$1;17;1;1;"
End Sub

オフセットは慎重に設定する必要があります。

「B」列で必要なものがわかりませんでした。しかし、この例を見ると、これを拡張できると確信しています。

これがあいまいすぎる場合は、そう言ってください。詳しく説明できます。

于 2012-11-06T15:02:39.500 に答える