首先发布这里抱歉,如果格式是非常糟糕的。需要一些我正在处理的VBA Excel文件的帮助。代码如下,并在下面的描述。任何帮助,将不胜感激VBA Excel。范围语法和比较器
Sub Main()
' Declare all variables
Dim LastRow As Long
Dim x As Long
Dim y As Long
Dim Date1 As Date
Dim Date2 As Date
Dim prod As String
Dim Add As Integer
Dim var1 As Integer
Dim var2 As Integer
Dim ProdString As String
'Calculate the number of rows in the sheet, then run a for loop for every row.
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To LastRow
y = x
'concatenate the current row number (x) and third column to a string (prod string), then check to see what letter is in that cell.
'Assign a letter to concatenate with variable 'x' to String Prod for the .Range Function
ProdString = x & 3
**If Range(ProdString).Value = "I" Then**
prod = "K"
ElseIf Application.ActiveSheet.Range(ProdString).Value = "E" Then
prod = "L"
ElseIf Application.ActiveSheet.Range(ProdString).Value = "O" Then
prod = "M"
ElseIf Application.ActiveSheet.Range(ProdString).Value = "Q" Then
prod = "N"
Else: prod = "O"
End If
' Add two numbers together in two different cells and assign to the second cell
var1 = Application.ActiveSheet.Range("D" & x).Value
var2 = Application.ActiveSheet.Range("prod" & x).Value
Add = var1 + var2
Application.ActiveSheet.Range("prod" & x).Value = Add
'While Loop to go through applicable date range from starting date to end date and add to those columns
Do While True
Date1 = Application.ActiveSheet.Range(y, 6).Value
Date2 = Application.ActiveSheet.Range(y + 1, 6).Value
If Application.ActiveSheet.Range(y, 7).Value <> Application.ActiveSheet.Range(y + 1, 7) Then Exit Do
If Date1 < Date2 Then Exit Do
var1 = Range("D" & x).Value
var2 = Range("prod" & y).Value
Add = var1 + var2
Range("prod" & y).Value = Add
y = y + 1
Loop
Next x
End Sub
我正在使用的Excel文件是一个工作簿,在一张纸上用10k行和15列。我试图在一列中添加一个数字到另一个基于日期。但目前我遇到的问题是试图找出Bolded.Range函数以及为什么它不起作用。我试着在特定的工作簿和页面名称前面进行尝试,但是当我这样做时,我会遇到全局范围错误。我只想比较指定范围内单元格内的内容,并且如果它是某个字符串,则将值赋给不同的字符串值。 谢谢。
您正在查看PodString,它是一个字符串,同时尝试将其用作范围。你将需要定义你想要工作的范围。例如,如果PodString = fdsa,那么Range(“fdsa”)会出错;如果PodString是范围和=范围(“A2:B2”),则范围(PodString)=范围(“A2:B2”)。 – Cyril
另外,当你开始你的子,你声明'X',但从未给它一个值。为什么甚至使用'x'? 'Range(podString)'是什么意思?这将是一个单一的数字,不是吗?像'范围(3)'? – BruceWayne
@BruceWayne我有一个更重要的问题列表,希望得到一些代码后,意图更清晰。这是......粗略地推断变量的意图。 – Cyril