替换VBA中的特定字母

时间:2018-09-30 04:27:02

标签: vba

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}


print dict['one']       # Prints value for 'one' key
print dict[2]           # Prints value for 2 key
print tinydict          # Prints complete dictionary
print tinydict.keys()   # Prints all the keys
print tinydict.values() # Prints all the values

我试图将括号添加到python代码的内容中,并且必须将'#'替换为')#',因为哈希符号暗示了编辑器中的注释。  'print'也被替换为'print('
并在python代码后附加')'

结果应该像下面的代码所示

print (tinydict.values() )# Prints all the values)

我将此代码放入空白的Excel工作表中,然后运行下面的vba代码

Sub macro1()
Set Rng = Range([a1], [p40])

For Each c In Rng
   If IsEmpty(c.Value) = False Then
        If c Like "*print*" Then
            c.Replace _
            What:="print", Replacement:="print (", _
            SearchOrder:=xlByRows, lookat:=xlPart

            c.Value = c.Value & ")"   'appending ) at the end'
        End If

        If c Like "*#*" Then
            c.Replace _
            What:="#", Replacement:=")#", _
            SearchOrder:=xlByRows, lookat:=xlPart
        End If
    End If
Next c

End Sub

但是,它仅适用于代码的第二行

print ( dict[2]           )# print (s value for 2 key)

包含“#”的行的其余部分不受影响。

我想知道是什么原因引起的。

Tnx

1 个答案:

答案 0 :(得分:1)

您可以将Option Explicit添加到程序顶部。然后为Rng和c添加DIM-s。但最重要的是问题是

df <- read.table(text = "works marriage freq
                 1 0 130
                 1 1 10
                 0 0 235
                 0 1 95", header = TRUE)

,它在行的某个位置查找NUMBER。 需要将其更改为通过将其括在方括号中来查找英镑符号

If c Like "*#*" Then