gpt4 book ai didi

VBA 加密方式

转载 作者:行者123 更新时间:2023-12-04 21:20:35 25 4
gpt4 key购买 nike

我在 VBA 上编写了一个非常简单的 Ceaser Cipher 加密算法。它接受一个字符串值并应用 x 移位。

很满意。但是,想把它带到下一步,但我不确定它是否可行。

我想在另一个模块中调用这个加密函数并传递一个字符串值来加密。

IE。我想做的是这样的

Private Sub Encryption()
'Encryption method of string Var
End Sub

---- 和另一个子 ----
Private Sub function()
Dim Text as String
Text = "Hello"
Encryption(Text)
End Sub

所以在这个例子中,我定义了一个加密任何字符串变量的方法。在另一个函数中,我定义了一个字符串并将其初始化为“Hello”。然后对其调用加密功能...不确定这在 VBA 中是否可行?

当我在函数中调用函数时,我不确定如何传入变量。请问有什么建议吗?

最佳答案

您需要更改 Sub Routine to a Function .另外,去掉 Private关键字,因为这将不允许您跨不同的模块调用它。

所以改变这个:

Private Sub Encryption()
'Encryption method of string Var
End Sub

对此:
Function Encryption(ByVal inputString as String) As String
'Encryption method of string Var
End Sub

现在,在您的函数中,您需要将保存第一个字符串(要加密的字符串)的任何变量更改为新创建的变量 inputString .在这方面很难为您提供帮助,因为您没有提供 Sub Encryption() 的完整代码.

此外,请确保您设置了 功能 将自己命名为函数中新加密的文本。因此,您的函数基本上如下所示:
Function Encryption(ByVal inputString as String) As String
'Encryption method of string Var
Encryption = 'the value to return from this function
End Sub

现在,您的第二个子将如下所示:
Private Sub test()
Dim Text as String, encryptedText as String
Text = "Hello"
encryptedText = Encryption(Text)
End Sub

您只需创建新变量 encryptedText等于新函数 Encryption .

因此, Sub 之间的主要区别和 Function是一个函数将返回值。它们基本上都以相同的方式处理代码。

方法 2(编辑)

在重新考虑您的问题后,我相信您是在使用您的 Sub 通过将变量传递为 ByRef 来获取加密文本。 ,并且您可能只是因为 Private 而无法调用 Sub关键词。

如果这是发生了什么,那么您可以简单地删除 Private 关键字,它应该可以按预期工作。

所以你的 Sub 应该是这样的:
Sub Encryption()    '<-- Notice, no Private scope
'Encryption method of string Var
End Sub

或者
Public Sub Encryption()
'Encryption method of string Var
End Sub

你应该采取 look at this有关范围的其他阅读。

关于VBA 加密方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51976371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com