我想要函数从 xy 转换为单元格
I want function convert from xy to cells
如何 return 函数的结果?
对于example:vba:我想要函数
Function xy2cell(i, f)
xy2cell = "=" & "?????????????????????????????"
End Function
Sub aaa_main()
ActiveSheet.Cells.Clear
f = "5^4*x-2^4*y-1"
For i = 1 To 2
Cells(i, 3) = xy2cell(i, f)
Next
End Sub
'I want
'Cells(1, 3) = "=5^4*" & Cells(1, 1).Address & "-2^4*" & Cells(1, 2).Address & "-1"
'Cells(2, 3) = "=5^4*" & Cells(2, 1).Address & "-2^4*" & Cells(2, 2).Address & "-1"
(20220328)
原创
日文以下↓↓↓↓↓↓------------------------------------ ------
2022年数学1A Q4<大学综合考试是日本大学的统一入学考试
https://cdn.mainichi.jp/item/jp/etc/kyotsu-2022/pdf/MTAP.pdf#page=20
我试试 (vba & vba 求解器)
https://qiita.com/mrrclb48z/items/af08059157cfbce8f0fe
日语up↑↑↑↑↑------------------------------------ -----
从活动 sheet 中清除所有单元格似乎很不寻常,因为这会删除函数运行的所有输入。尽管如此,这是您的代码转换为按您的要求执行的操作。我添加了 Dim 语句来声明您的代码使用的变量。
Function xy2cell(i As Long, f As String)
Dim formula As String
formula = Replace(f, "x", Cells(i, 1).Address(False, False))
formula = Replace(formula, "y", Cells(i, 2).Address(False, False))
xy2cell = "=" & formula
End Function
Sub aaa_main()
Dim f As String
Dim i As Long
ActiveSheet.Cells.Clear
f = "5^4*x-2^4*y-1"
For i = 1 To 2
Cells(i, 3).Formula = xy2cell(i, f)
Next
End Sub
此代码使用“替换”函数在公式字符串 (f) 中查找“x”并将其替换为适当的单元格引用。结果存储在名为“formula”的变量中,然后将其用作输入,用适当的单元格引用替换 y。
但是,使用公式 2R1C1 属性 有一种更简单的方法。我将 post 关于该技术的单独解决方案。
一种更简单的方法是使用范围的公式 2R1C1 属性。这允许您使用将单元格引用为距目标单元格的偏移量的符号来指定公式。这样,单个表达式可用于在范围的每个目标单元格中创建不同的公式。
Sub aaa_main_2()
Dim f As String
f = "=5^4*x-2^4*y-1"
f = Replace(f, "x", "RC[-2]")
f = Replace(f, "y", "RC[-1]")
ActiveSheet.Cells.Clear
Range("C1:C2").Formula2R1C1 = f
End Sub
或者,更直接
Sub aaa_main_3()
ActiveSheet.Cells.Clear
Range("C1:C2").Formula2R1C1 = "=5^4*RC[-2]-2^4*RC[-1]-1"
End Sub
如何 return 函数的结果?
对于example:vba:我想要函数
Function xy2cell(i, f)
xy2cell = "=" & "?????????????????????????????"
End Function
Sub aaa_main()
ActiveSheet.Cells.Clear
f = "5^4*x-2^4*y-1"
For i = 1 To 2
Cells(i, 3) = xy2cell(i, f)
Next
End Sub
'I want
'Cells(1, 3) = "=5^4*" & Cells(1, 1).Address & "-2^4*" & Cells(1, 2).Address & "-1"
'Cells(2, 3) = "=5^4*" & Cells(2, 1).Address & "-2^4*" & Cells(2, 2).Address & "-1"
(20220328)
原创
日文以下↓↓↓↓↓↓------------------------------------ ------
2022年数学1A Q4<大学综合考试是日本大学的统一入学考试
https://cdn.mainichi.jp/item/jp/etc/kyotsu-2022/pdf/MTAP.pdf#page=20
我试试 (vba & vba 求解器)
https://qiita.com/mrrclb48z/items/af08059157cfbce8f0fe
日语up↑↑↑↑↑------------------------------------ -----
从活动 sheet 中清除所有单元格似乎很不寻常,因为这会删除函数运行的所有输入。尽管如此,这是您的代码转换为按您的要求执行的操作。我添加了 Dim 语句来声明您的代码使用的变量。
Function xy2cell(i As Long, f As String)
Dim formula As String
formula = Replace(f, "x", Cells(i, 1).Address(False, False))
formula = Replace(formula, "y", Cells(i, 2).Address(False, False))
xy2cell = "=" & formula
End Function
Sub aaa_main()
Dim f As String
Dim i As Long
ActiveSheet.Cells.Clear
f = "5^4*x-2^4*y-1"
For i = 1 To 2
Cells(i, 3).Formula = xy2cell(i, f)
Next
End Sub
此代码使用“替换”函数在公式字符串 (f) 中查找“x”并将其替换为适当的单元格引用。结果存储在名为“formula”的变量中,然后将其用作输入,用适当的单元格引用替换 y。
但是,使用公式 2R1C1 属性 有一种更简单的方法。我将 post 关于该技术的单独解决方案。
一种更简单的方法是使用范围的公式 2R1C1 属性。这允许您使用将单元格引用为距目标单元格的偏移量的符号来指定公式。这样,单个表达式可用于在范围的每个目标单元格中创建不同的公式。
Sub aaa_main_2()
Dim f As String
f = "=5^4*x-2^4*y-1"
f = Replace(f, "x", "RC[-2]")
f = Replace(f, "y", "RC[-1]")
ActiveSheet.Cells.Clear
Range("C1:C2").Formula2R1C1 = f
End Sub
或者,更直接
Sub aaa_main_3()
ActiveSheet.Cells.Clear
Range("C1:C2").Formula2R1C1 = "=5^4*RC[-2]-2^4*RC[-1]-1"
End Sub