【问题标题】:How to change values of range in excel vba如何更改excel vba中的范围值
【发布时间】:2018-03-14 03:21:21
【问题描述】:

我想更改范围(源)的值并粘贴到 excel vba 中的另一个范围(目标)。请注意,正斜杠的来源可能会有所不同。

例如,我想这样做,但来自 vba excel:

伪代码:

ThisWorkbook.Sheets("Sheet1").Range(A1,A4).Value = 用变量替换上一次转发之前的源字符串。

variable = "C:Destination\"

基本上我会修改 Source 的值并希望粘贴到目标中。

此代码有效,但将相同的值从源粘贴到目标

ThisWorkbook.Sheets("Sheet1").Range(A1,A4).Value = ThisWorkbook.Sheets("Sheet1").Range(B1,B4).Value

请帮助我是 VBA 新手,在此先感谢。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    除非我误解了这个问题,否则这可以实现您想要做的事情。

    可以通过计算第一列中填充单元格的范围并将其设置为循环最大迭代来进一步改进。

    Dim Str As String
    Dim Source As String
    Dim Destination As String
    Dim populated As Integer
    
    Source = "C:\Source\"
    Destination = "D:\Destination\"
    
    N = Cells(Rows.Count, "A").End(xlUp).Row
    
    For i = 1 To N
        Str = Cells(i, 1).Value
        Cells(i, 2).Value = Replace(Str, Source, Destination)
    Next i
    

    【讨论】:

    • 目的地(ColB)没有改变。另外,如果有标题,那么代码会有什么变化?最后在我的情况下 source = 'cell list in colA' 请帮助代码。
    • 如果有标题,则从 2 开始循环计数,而不是 1。我只是将目标声明为变量,以防它在某个阶段发生变化。您可以改为在 Replace 函数中对其进行硬编码,而不是传入 Destination 变量。
    • 谢谢,但是如果我将目标或源设置为路径 (C:\Source),则代码有问题替换功能不起作用,但如果我硬编码字符串代替源或目标,例如:单元格(i, 2).Value = Replace(Str, "Source", "Destination")
    • Replace 将这些参数作为字符串。所以要硬核这些路径,你需要 Replace(Str, "C:\Source", "D:\Destination")
    • 好吧,这是有道理的。我如何计算填充单元格的范围?
    【解决方案2】:

    这里是一个简单的例子,用于在一个范围内将单元格值增加和减少 1:

    Option Explicit
    
    Dim actualRange     As Range
    Dim cellRange       As Range
    
    
    Public Sub increaseNumber()
    
        Set actualRange = Selection
    
        For Each cellRange In actualRange.Cells
            cellRange.value = cellRange.value + 1
        Next
    
    End Sub
    
    Public Sub decreaseNumber()
    
        Set actualRange = Selection
    
        For Each cellRange In actualRange.Cells
            cellRange.value = cellRange.value - 1
        Next
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      相关资源
      最近更新 更多