string - 应该是VBA中的简单循环程序

标签 string excel vba

在 Excel 中,我有一列单词。我相信您在编程世界中将单词称为“字符串”。

逐行,我需要取出列中的每个单词并在其周围放置单个引号。

例如,如果单元格中的单词是狗,我需要将其更改为“狗”。

我正在尝试编写一个宏来执行此操作,但我已经遇到了 的第一部分的问题。代码,就是将words这一列导入到中来自 Excel 电子表格。

我的代码如下。错误消息显示“下标超出范围”,但正如您所看到的,我已将数组变暗。我究竟做错了什么?谢谢。

    Sub putquotes()
    Dim sym(1 To 162) As String
    For i = 1 To 162
       sym(i) = Worksheets("sheet1").Cells(i + 1, 1)
    Next i
    End Sub

最佳答案

我认为您的问题是您的 sheet1 名称,它可能应该是 Sheet1

我将使用类似的东西,它将在第一个工作表上运行(请参阅Set ws = Sheets(1))

请注意,第三个工作表将是 Set ws = Sheets(3),或者如果您确实有这样的内容,您可以使用 Set ws = Sheets("Sheet1")一张纸

这段代码:

  • 将独立于所选工作表运行
  • 从 A 列中第一个到最后一个使用的单元格查找(而不是硬编码 162 行)
  • 使用变体数组而不是范围来提高速度
  • 添加两个 '' 以确保第一个可见:)

    Sub PutQuotes()
    Dim ws As Worksheet
    Dim varList
    Dim rng1 As Range
    Dim lngCnt As Long
    Set ws = Sheets(1)
    Set rng1 = ws.Range(ws.[a1], ws.Cells(Rows.Count, "A").End(xlUp))
    varList = rng1.Value2
    
    For lngCnt = 1 To UBound(varList)
        If Len(varList(lngCnt, 1)) > 0 Then _
            varList(lngCnt, 1) = "''" & varList(lngCnt, 1) & "'"
    Next
    'dump updated array back over range
    rng1.Value2 = varList
    End Sub
    

关于string - 应该是VBA中的简单循环程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858386/

相关文章:

excel - 使用Word宏返回Excel的最后一行

java - 如何在java中用变量而不是硬编码数字在%s内字符串填充

string - R - 获取给定时间段内最常见的字符串值(模式)

excel - 检测文本相同但文本格式不同的单元格之间的差异

php - 在通过 html 生成的 excel 单元格中添加新行

python - 分析数据集的增减

excel - 如何从范围中选择随机单元格?

c - 如何使用负浮点进行 sscanf ?

c++ - tictactoe 游戏没有运算符 "=="匹配这些操作数

api - 写入/读取 Windows 事件日志