如何在excel vba中更改范围的值

时间:2017-10-03 01:26:20

标签: excel-vba vba excel

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

例如我想这样做但是从vba excel: enter image description here

psedu代码:

ThisWorkbook.Sheets(" Sheet1")。范​​围(A1,A4).Value =用变量替换最后一次前的源字符串。

variable =" C:Destination \"

基本上我正在修改Source的值并希望粘贴到目标位置。

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

ThisWorkbook.Sheets(" Sheet1")。范​​围(A1,A4).Value = ThisWorkbook.Sheets(" Sheet1")。范​​围(B1,B4).Value

请帮助VBA新手,提前致谢。

2 个答案:

答案 0 :(得分:2)

这可以达到你想要做的,除非我误解了这个问题。

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

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

答案 1 :(得分:-1)

下面是一个简单的示例,该示例将某个范围内的单元格值增加或减少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