2013-06-15 2 views
-1

방금 ​​VB에서 기본 사항을 배웠고 다른 사람이 내 Excel 워크 시트를 코딩하여 행을 사용하여 셀을 찾도록 도와 줄 수 있는지 궁금합니다. 열 값을 가져오고 버튼 클릭시 위치 지정된 셀의 "value"(위치 지정된 셀에 포함 된 숫자)를 특정 정수 (예 : +1)만큼 증가시킵니다. 나는 아무 소용이 FAQ에서 보았다. 내가 그것을 놓친 것으로 생각되면, 내가 그것에 도달 할 수 있도록 링크를 제게 제공하십시오. 나는 이미 VBA에서 코딩의 기초를 배웠지 만, 고급 코드를 자세히 설명 할 수 있다면, 대단히 감사하겠습니다.행과 열 값을 사용하여 셀을 찾은 다음 버튼 클릭시 셀 값을 1로 증가하십시오.

설명을 위해, 1은 범위를 5x5 cells (셀 5, 셀 5, 셀 A1부터 시작하여 5 셀)으로 지정했습니다. 행 번호는 셀 A7에 "4"로 입력되고 열 번호는 A8에 "3"으로 입력됩니다. 버튼을 클릭하면 셀이 배치되고 cell = + 1에 값이 추가됩니다. 출력으로, 열 번호와 행 번호가 교차 되었기 때문에 셀 "C4"에 숫자 "1"이 있어야합니다.

또한 열 # 셀의 값은 셀 # A7의 값이 "3"이고 A8의 값이 "비어 있음"을 의미하는 행 # 셀로 전송되어야합니다. 열 # 셀의 값을 다음 행의 셀 값으로 사용하기 때문입니다.

모든 반응, 의견, 답변 또는 제안을 주시면 감사하겠습니다. 읽어 주셔서 감사합니다. :) (사이트가 아직 나 이미지를 게시 할 수 없습니다 나는 거친 이미지의 예를 제공 할 수없는 경우 미안 해요.)

+1

그래서 무엇인가 너 특히이 시점에서 붙어 있니? – chuff

답변

0

.. 당신의 버튼에서이 작업을 수행

Sub SetAddr() 
Dim x, y As Integer 
Dim sCell As String  

x = ActiveSheet.Range("A8").Value 
y = ActiveSheet.Range("A7").Value 
sCell = StrRange(y, x) 

'assumed the cell is blank 
If IsEmpty(ActiveSheet.Range(sCell)) Then 
    ActiveSheet.Range(sCell).Value = ActiveSheet.Range(sCell).Value + 1 
End If 

End Sub 

Function StrRange(ByVal nRow As Single, ByVal nCol As Single) As String 
Dim sC As String 
Dim nC, nRest, nDivRes As Integer 

sC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
nC = Len(sC) 

nRest = nCol Mod nC 
nDivRes = (nCol - nRest)/nC 

If nDivRes > 0 Then StrRange = Mid(sC, nDivRes, 1) 
StrRange = StrRange & Mid(sC, nRest, 1) & Format(nRow) 
End Function 

난 당신이 나머지를 할 수 있습니다 확신합니다 ....

+0

정말 고마워요. 아직 코드를 사용해 보지 못했지만 정말 도움을 주셔서 감사합니다. :) – Marcus

+0

환영합니다 .. Excel 2007에서 이미 테스트되었습니다. – matzone

+0

안녕하세요 matzone, 내가 준 코드를 시도해 보니 매력적이었습니다 :) 그러나 코드의 몇 가지 "제한 사항" . 나는 내 질문에 이전에 그것을 나타내지 않는 것이 내 실수 였다는 것을 인정해야한다. 1.) 조합이 이미 입력되었을 때마다 셀 안의 숫자가 더해지지 않습니다. (단지 "1"입니다.) 2. 여러 x와 y 값을 입력 할 수 있도록 추가 코드를 제안 할 수 있습니까? 2 x 값과 2 y 값을 입력한다고 해보시겠습니까? 결과는 1x1y, 1x2y, 2x, 1y, 2x2y와 같았을 것입니다. 도와 주셔서 다시 한 번 감사드립니다! :) – Marcus

0
Worksheets("wksht").Range("$a$n").Value = Worksheets("wksht").Range("$a$n").Value + m 
워크 시트입니다 wksht하는 원하는 행입니다

, n 원하는 열, m은 원하는 증가 계수입니다. 나는 숫자를 확인하기 위해 값을 확인하기를 원할 것임에 유의해야한다. 최종 사용자가 올바른 입력을 할 수 있다고 믿을 수는 없다.

여기에서 찾을 : 나는 당신이이 http://www.access-programmers.co.uk/forums/showthread.php?t=165438

+0

제 질문에 답변 해 주셔서 감사합니다. :) – Marcus

관련 문제