1

皆さん、

Excelセル内にデータ構造体を保存する方法はありますか? そこからデータを取得するにはどうすればよいですか?

私は次のようなものを使用することを期待しています

  • 構造体をセル A1 に入れるには:=putstruct("data1", 123, "data2", "hello", "data3", MMULT(matA,matB))
  • A1からセルB1に入るには:=getstruct("A1", "data1")
  • 構造体で解決される (いくつかの) 問題の 1 つ: 計算された行列を参照する必要がある場合は、まず、スプレッドシートで行列全体を展開 (つまり、表示) してから、使用を開始する範囲として名前を付ける必要があります。しかし、マトリックスのサイズが変わると、頭の痛い問題になり始めます...

    どんな助けでも大歓迎です!

    ところで、同様の質問がここここで見つかりました。

    4

    2 に答える 2

    1

    はい、それは可能ですが、複雑です。
    putstruct は、ハンドルを使用して内部グローバル データ プールにデータを格納し、ハンドルを A1 のデータ構造に配置する必要があります。
    次に、Getstruct は A1 のハンドルを使用してデータを返します。
    関連する問題のいくつかは次のとおりです。

    データが変更されるたびに GetStruct がデータを正しく返す
    ようにする 保存されたワークブックにグローバル データを永続化して、ワークブックを開いたときに再び表示されるように
    する ハンドルを持つセルが上書きまたは削除されたときにグローバル データをクリーンアップする

    于 2012-10-26T08:03:42.093 に答える
    0

    これはあなたのために働くかもしれません...最初に新しいワークブックでこのマクロを実行してください:

    Sub AddMacroFunctions()
     Sheets.Add Type:=xlExcel4MacroSheet
     [B2] = "=ARGUMENT(""Name"",2)"
     [B3] = "=ARGUMENT(""Value"",95)"
     [B4] = "=RETURN(SET.NAME(Name,Value))"
     [B6] = "=RESULT(95)"
     [B7] = "=ARGUMENT(""Value"",95)"
     [B8] = "=RETURN(EVALUATE(Value))"
     Names.Add "Put", Range("B2"), , xlFunction
     Names.Add "Get", Range("B6"), , xlFunction
     ActiveSheet.Visible = False
    End Sub
    

    ...この例では、アクティブシートに次の数式を入力できます。

    A1: =AND(Put("data1",123),Put("data2","hello"),Put("data3",MMULT({1;2},{3,4})))
    B1: =IF(A1,Get("data1"))
    

    データは、マクロで作成されたマクロシートに保存されます。の式の値を変更するとA1、 の値がB1自動的に更新されます。

    これは、カスタム名でデータを保存することにより、putstruct / getstruct 方法論にも適用できmystruct.data1ます。また、ワークブックをアドインとして保存して、どのワークブックからでも関数にアクセスできるようにすることもできます。

    于 2012-10-27T19:06:45.273 に答える