-1

列をコピーして、ユーザーが望む場所に貼り付けるためのコードを作成しました

 Set rng = Range("A1:EO1").Find(What:=COL, LookIn:=xlValues, Lookat:=xlWhole)
If rng Is Nothing Then
 MsgBox "Value not found in row 1", vbExclamation
 Else
  Range(rng, rng.End(xlDown)).copy
  ActiveSheet.Paste Destination:=ThisWorkbook.Sheets(assume).Columns(c).Offset(, 4)
EndIf

ここで、「COL」はユーザーが指定した値を保持する変数であり、「c」は貼り付ける文字列値を保持する変数です。

正しく機能しています。例:-次のようなExcelデータを想定します

0.25 | 0.50 | 0.75 | 1.00 | 1.25 | 1.50 | 1.75 | 2.00 |

上記の行は、ユーザーが1.75などの値を入力した場合の最初の行であり、列全体を選択して、ユーザーが希望する場所に貼り付けます。

ただし、ユーザーが1.90と入力すると、1.75から2.00の間のデータを補間し、ユーザーが望む場所に貼り付ける必要があります。

私を助けてください

4

1 に答える 1

1

完全に一致しない 2 つの点の間を本当に補間したい場合は、次のようなものを得ることができます。

interpolated = y1 + ((xs-x1)/(x2-x1))*(y2-y1)

ここx1で、x2は最初の行の値でxs、ユーザーが入力した「検索」値です。 y1y2下の各行の対応する 2 つの値です。

于 2012-10-23T16:32:54.550 に答える