我有一个格式化文本的单元格,其中包含我想用换行替换的某个子字符串。子字符串是带有方括号的[enterkey]。这是此问题Replace HTML tag(</br>) with Alt+Enter in Excel的变体,但我想在更改行后继续格式化。
我使用的代码是一个简单的替换,其中rng2是输入和输出单元格:
public class DepthOfParenthesis {
public static void main(String[] args)
{
System.out.println(depth());
}
static int depth()
{
String S = "( ((X)) (((Y))) )";
int current_max =0;
int overall_max=0;
int n =S.length();
for(int i =0; i<n;i++)
{
if(S.charAt(i)=='(')
{
current_max++;
if(current_max>overall_max)
overall_max=current_max;
}
else if(S.charAt(i)==')')
{
if(current_max>0)
current_max--;
return -1;
}
}
if(current_max!=0)
return -1;
return overall_max;
}
}
我的问题
如何在插入换行符时阻止该代码复制上述行的格式?我希望它能够保存格式,只需插入换行符,如图所示。
更多信息
我实际上转换为HTML并返回。我不想添加不必要的细节,但如果人们真的想知道,那是因为我将值存储在Access数据库中,并且我想保留单元格格式。从Access中检索信息时,我希望再次使用正确的格式。此问题仅涉及转换回来。有关详细信息,请参见下图。
答案 0 :(得分:1)
经过一番研究,我得到了一些有用的东西。
此代码:
Sub ReplaceEnterKey()
Dim rng2 As Range
Set rng2 = Range("O15")
Dim iChr As Integer
iChr = InStr(1, rng2.Value, "[e") 'find beginning of first occurence of "[enterkey]"
Do Until iChr = 0 'loop until no more occurences found
rng2.Characters(iChr, 10).Delete 'remove found occurrence of "[enterkey]" - 10 characters
rng2.Characters(iChr, 0).Insert Chr(10) 'insert carriage return where "[enterkey]" used to be
iChr = InStr(1, rng2.Value, "[e") 'look for next occurence
Loop
End Sub
创建此结果。 N15
原创为O15
。