我搜索了这个网站并用谷歌搜索了一个公式。我需要从字母中计算一个 Excel 列号,例如:
A=1 B=2 .. AA=27 AZ=52 ... AAA=703
在字母表的随机循环(AZ -> BA == off digit)之后,代码似乎减少了 1 位数。它似乎还会从两个不同的输入中随机生成相同的整数:
GetColumnNumber(xlLetter : Text) : Integer //Start of function
StringLength := STRLEN(xlLetter);
FOR i := 1 TO StringLength DO BEGIN
Letter := xlLetter[i];
IF i>1 THEN
Count += ((xlLetter[i-1]-64) * (i-1) * 26) - 1;
Count += (Letter - 64);
END;
EXIT(Count); //return value
我的代码示例是用用于 Dynamics NAV 的 C/AL 编写的,但我也可以编写 C# 或 vb.net,因此我不介意示例是否使用这两种语言中的任何一种。